Чтение текстового документа из хранимой процедуры PL / SQL - PullRequest
0 голосов
/ 19 августа 2011
CREATE OR REPLACE PROCEDURE file_trial IS
  V1 VARCHAR2(32767);
  F1 UTL_FILE.FILE_TYPE;
BEGIN
  F1 := UTL_FILE.FOPEN('C:\TEMP','AVI','R',256);
  UTL_FILE.GET_LINE(F1,V1,32767);
 UTL_FILE.FCLOSE(F1);
END file_trial;

Этот код при выполнении дает

ORA 29280: Неверный путь к каталогу "

Но файл (avi.txt) присутствует во временной папке

1 Ответ

3 голосов
/ 19 августа 2011

Вам необходимо создать КАТАЛОГ в Oracle

Как SYS:

CREATE DIRECTORY MY_SYMBOLIC_NAME AS 'C:\TEMP';
GRANT READ,WRITE ON DIRECTORY oraload TO my_user;

Теперь вы можете открывать файлы в каталоге, используя символическое имя и имя файла (включая расширение имени файла):

F1 := UTL_FILE.FOPEN('MY_SYMBOLIC_NAME','AVI.TXT','R',256);

Обратите внимание, что DIRECTORY в Oracle указывает на каталог файловой системы, доступный с сервера базы данных, как указал Сатья.

...