1
需要使用Oracle 10中的存儲過程來創建文本文件。我很新,所以請從一開始就引導我。Oracle - 使用存儲過程創建文本文件
我找到代碼並將其創建爲存儲過程。我運行它,它是有效的。但我執行它,我得到的錯誤"INVALID FILE NAME... AT SYS.UTL_FILE..."
我第一次創建一個目錄,授予讀,寫目錄。
CREATE OR REPLACE PROCEDURE refcursorkim IS
l_file utl_file.file_type;
l_file_name VARCHAR2(60);
BEGIN
l_file := utl_file.fopen('UTL_DIR', l_file_name, 'w');
SELECT 'KY' || TO_CHAR(SYSDATE, 'yyyymmdd') || '1.txt' INTO l_file_name FROM dual;
utl_file.putf(l_file,l_file_name);
utl_file.fclose(l_file);
END refcursorkim;
我不知道我在想什麼,因爲我對此並不熟悉。另一件事,是在指定的目錄中自動創建文件?
希望你能幫助我。謝謝你,上帝保佑!
這段代碼是否意味着如果文件不存在,它會自動創建?以及如何訪問oracle服務器中的文件列表?我只知道SELECT * FROM ALL_DIRECTORIES。這隻會檢索目錄列表,我想知道每個目錄中的文件(儘管我應該在不同的線程中提出這個問題......)我只是想確定是否創建了該文件。雖然我仍然有相同的錯誤..無效的文件操作... sys.utl_file ...非常感謝你! – user1249603 2012-03-06 02:59:33
更新了答案。檢查。 – Guru 2012-03-06 03:11:52
使用oracle 10g。這是我的代碼:'CREATE OR REPLACE PROCEDURE refcursorkim IS l_file utl_file.file_type; l_file_name VARCHAR2(60); BEGIN \t \t SELECT'KY'|| TO_CHAR(SYSDATE,'yyyymmdd')|| '1.txt' \t \t INTO l_file_name FROM dual; l_file:= utl_file.fopen('UTL_DIR',l_file_name,'w'); utl_file.putf(l_file,l_file_name); utl_file.fclose(l_file); END refcursorkim; /' 錯誤是「ORA-29283:無效的文件操作| ORA-06512:在SYS。UTL_FILE,第475行「| ORA-29283:無效文件操作| ORA-06512,位於SCHEMA_NAME.REFCURSORKIM,第9行| OR-06512:第2行 – user1249603 2012-03-06 03:31:56