我在哪里可以使用UTL_FILE从我的oracle数据库访问文件?

时间:2019-02-05 10:59:03

标签: sql oracle utl-file

我正在尝试使用UTL_FILE从具有oracle db的文件中读取。 我找不到我可以访问的文件位置。 每当我使用此代码时:

DECLARE 
  F1 UTL_FILE.FILE_TYPE; 
BEGIN 
  F1 :=UTL_FILE.FOPEN('C:\TEMP','test_file.txt','R'); 
END;

我得到:ORA-29280:无效的目录路径

为什么会这样?

我可以以某种方式使oracle显示我有权访问的位置吗?

BR Kresten

1 个答案:

答案 0 :(得分: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');