-1
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)

4

1 回答 1

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

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

于 2011-08-19T09:29:05.227 回答