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)存在于临时文件夹
中答案 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所指出的那样。