简体   繁体   English

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

[英]Where can I access a file from my oracle db with UTL_FILE?

I'm trying to read from a file with oracle db using UTL_FILE.我正在尝试使用 UTL_FILE 从带有 oracle db 的文件中读取。 I can't find a file location I have access to.我找不到我有权访问的文件位置。 Whenever I use this code:每当我使用此代码时:

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

I get: ORA-29280: invalid directory path我得到:ORA-29280:无效的目录路径

Why would that be?为什么会这样?

Can I somehow make oracle show the location I have access to?我可以以某种方式让 oracle 显示我可以访问的位置吗?

BR Kresten BR克里斯汀

UTL_FILE.FOPEN uses DBA_DIRECTORIES . UTL_FILE.FOPEN使用DBA_DIRECTORIES

SELECT * from ALL_DIRECTORIES 

gives you defined and accessible DBA_DIRECTORIES .为您提供定义且可访问的DBA_DIRECTORIES

You can create directory for your File operations您可以为文件操作创建目录

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

Then然后

 F1 := UTL_FILE.FOPEN('File_Op_Dir','u12345.tmp','R'); 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM