【问题标题】:Reading Text Document from PL/SQL stored procedure从 PL/SQL 存储过程中读取文本文档
【发布时间】:2011-08-19 06:56:44
【问题描述】:
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)

【问题讨论】:

标签: oracle plsql utl-file


【解决方案1】:

你需要在Oracle中创建一个DIRECTORY

作为 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);

请注意,Oracle 中的 DIRECTORY 指向 Sathya 指出的可从数据库服务器访问的文件系统目录。

【讨论】:

  • 你应该提到,只有当目录存在于数据库服务器上时,这才有效,而不是在客户端。
猜你喜欢
  • 1970-01-01
  • 2016-03-17
  • 1970-01-01
  • 2016-11-08
  • 1970-01-01
  • 2011-10-12
  • 2021-10-21
  • 1970-01-01
  • 2016-11-16
相关资源
最近更新 更多