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

Я хочу прочитать файл на моем локальном компьютере, который содержит параметры запроса, когда я выполняю запрос в 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;

2 ответа

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

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

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

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

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

Другие вопросы по тегам