Где я могу получить доступ к файлу из моей базы данных Oracle с помощью UTL_FILE?
Я пытаюсь прочитать из файла с оракулом дБ с помощью UTL_FILE. Я не могу найти местоположение файла, к которому у меня есть доступ. Всякий раз, когда я использую этот код:
DECLARE
F1 UTL_FILE.FILE_TYPE;
BEGIN
F1 :=UTL_FILE.FOPEN('C:\TEMP','test_file.txt','R');
END;
Я получаю: ORA-29280: неверный путь к каталогу
С чего бы это?
Могу ли я как-то заставить оракула показать местоположение, к которому у меня есть доступ?
БР Крестен
1 ответ
Решение
UTL_FILE.FOPEN
использования DBA_DIRECTORIES
,
SELECT * from ALL_DIRECTORIES
дает вам определенный и доступный DBA_DIRECTORIES
,
Вы можете создать каталог для ваших файловых операций
CREATE DIRECTORY File_Op_Dir AS '/u01/fileDir';
GRANT READ ON DIRECTORY File_Op_Dir TO <<user>>;
--IF you need write permission
GRANT WRITE ON DIRECTORY File_Op_Dir TO <<user>>;
затем
F1 := UTL_FILE.FOPEN('File_Op_Dir','u12345.tmp','R');