Как прочитать локальный файл в SQL Developer? - PullRequest
2 голосов
/ 06 июня 2011

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

4 голосов
/ 06 июня 2011

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

0 голосов
/ 06 июня 2011

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

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

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

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

...