2011-08-19 78 views
-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:INVALID目录路径”

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

+1

可能重复的[UTL_FILE.FOPEN()过程不接受目录路径?](http://stackoverflow.com/questions/2751113/utl-file-fopen-procedure-not-accepting-path-for-directory ) – APC

回答

3

您需要在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