从PL / SQL存储过程中读取文本文档

时间:2011-08-19 06:56:45

标签: oracle plsql utl-file

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:INVALID DIRECTORY PATH“

但文件夹(avi.txt)存在于临时文件夹

1 个答案:

答案 0 :(得分:3)

您需要在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所指出的那样。