服務器目錄配置
1、創建服務器目錄(1)在system用戶下執行如下命令:CREATE OR REPLACE DIRECTORY MAIL_FILE_DIR AS '/mail_file/data/PROD'; (2)給創建的目錄賦權限,執行:GRANT read ,write ON DIRECTORY MAIL_FILE_DIR TO PUBLIC; 如果是雙節點的服務器,在兩個服務器上執行上述sql語句
2、在數據庫服務器上創建/mail_file/data/PROD目錄切換到主目錄'/'下執行創建目錄命令目錄創建完成後在主目錄'/'下執行賦權限命令:chmod 777 /mail_file/data/PROD
3、向目錄下寫入文件 DECLARE fhandle utl_file.file_type; BEGIN fhandle := utl_file.fopen( 'MAIL_FILE_DIR', 'example.txt' , 'w'); utl_file.put_line(fhandle, 'gh test write one'); utl_file.put_line(fhandle, 'gh test write two'); utl_file.fclose(fhandle); END;
4、讀出文件的內容 DECLARE fhandle utl_file.file_type; fp_buffer VARCHAR2( 4000); BEGIN fhandle := utl_file.fopen( 'MAIL_FILE_DIR', 'example.txt' , 'R');
utl_file.get_line(fhandle, fp_buffer); dbms_output.put_line(fp_buffer); utl_file.get_line(fhandle, fp_buffer); dbms_output.put_line(fp_buffer); utl_file.fclose(fhandle); END;
報錯: ORA-29283 : 文件操作無效 ORA-06512 : 在"SYS.UTL_FILE", line 449 ORA-29283 : 文件操作無效原因:在數據庫下面沒有目錄或者目錄沒有賦讀寫權限