阅读文本文档存储过程
问题描述:
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目录路径”
但是文件(avi.txt)存在于临时文件夹
答
您需要在Oracle中创建一个目录
如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指出的数据库服务器。
+2
您应该提到,只有当数据库服务器上存在该目录时,才会有效,而不是在客户端。 – Sathya
可能重复的[UTL_FILE.FOPEN()过程不接受目录路径?](http://stackoverflow.com/questions/2751113/utl-file-fopen-procedure-not-accepting-path-for-directory ) – APC