Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Как мне прочитать локальный файл в SQL Developer?

Автор вопроса: user786149Ответов: 2

Я хочу прочитать файл на моем локальном компьютере, содержащий параметры запроса, когда я выполняю запрос в Oracle SQL Developer. Примеры, которые я нашел в сети, неадекватны. Я продолжаю получать ошибки "ORA-29283: недопустимая операция с файлом", когда выполняю приведенный ниже код:

CREATE DIRECTORY SAMPLEDATA2 AS 'C:';
GRANT READ, WRITE ON DIRECTORY SAMPLEDATA2 TO PUBLIC;


declare
f utl_file.file_type;
s varchar2(200);
c number := 0;

BEGIN

f := utl_file.fopen('SAMPLEDATA2','sample2.txt','R');
loop
    utl_file.get_line(f,s);
    dbms_output.put_line(s);
    c := c + 1;
end loop;

exception
    when NO_DATA_FOUND then
        utl_file.fclose(f);
        dbms_output.put_line('Number of lines: ' || c);
end;
  • возможный дубликат процедуры UTL_FILE.FOPEN (), не принимающей путь для каталога ? APC 06.06.2011

inputoracleplsqloracle-sqldeveloperutl-file

Ответы

Ответ 1 · рейтинг 4 · Justin Cave

UTL_FILE может читать данные только из файлов, которые хранятся на сервере базы данных. Поскольку это код PL / SQL, он работает на сервере базы данных и имеет доступ только к тем ресурсам, которые доступны процессу Oracle на сервере базы данных.

Ответ 2 · APC

"Я хочу прочитать файл на моем локальном компьютере, содержащий параметры запроса, когда я выполняю запрос в Oracle SQL Developer".

Это кажется необычным - я хотел сказать "своеобразным" архитектурным решением. Откуда берутся эти ценности? Почему их нужно хранить в файле? Как часто они меняются?

Будет очень сложно предоставить содержимое локального файла ПК удаленному серверу базы данных (т.е. мы говорим об автоматизации с помощью ftp или ручного процесса, включающего что-то вроде WinSCP).

С другой стороны, применить к запросу некоторые параметры запроса может быть довольно просто; например, используя SYS_CONTEXT и пространства имен. Но мне нужно узнать больше подробностей, прежде чем я смогу предложить альтернативное решение.

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы