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

标签 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 克里斯滕

最佳答案

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'); 

关于sql - 在哪里可以使用 UTL_FILE 从我的 oracle 数据库访问文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54532890/

相关文章:

sql - 具有WHERE子句的内部联接影响第二个联接

sql - 使用 Access SQL 查询删除小数位

mysql - 具有多个表的 Sphinxsearch sql_query

python - 在oracle SQL*PLUS中执行Python脚本

mysql - 我怎样才能得到那些具有所有状态的ID?

java - 我该如何修复此错误 : non supported SQL92?

oracle - 无法访问 plsql 函数返回的对象类型

oracle - 使用 UTL_FILE.FRemove 从服务器删除文件而不知道文件名

Oracle - 使用存储过程创建文本文件