2011-08-19 157 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