0
我正在使用UNIX腳本來運行通過數據庫鏈接啓動存儲過程的sql代碼。我可以讓程序成功完成,但是沒有任何DBMS輸出被假脫機到指定的SPOOL文件。內UNIX如何從通過數據庫鏈接執行的存儲過程中進行後臺處理?
SQL:
set feedback off;
set linesize 500;
set serveroutput on size 1000000;
set serveroutput on format wrapped;
spool $SQLspool;
whenever oserror exit;
whenever sqlerror exit sql.sqlcode;
DECLARE
retcode integer :=0;
BEGIN
[email protected];
dbms_output.put_line('');
dbms_output.put_line('return code: ' || retcode);
dbms_output.put_line('');
EXCEPTION
WHEN OTHERS THEN
RAISE;
END;
/
EXIT;
spoolfile信箱內容:
return code: 0
我列出了存儲過程中一堆DMBS輸出,但沒有數據被寫入到假脫機文件。
我怎樣才能得到它輸出到假脫機文件?
我想有OUT變量,但由於過程中包含的COMMIT它的錯誤了與參數,因爲它會通過數據庫鏈接...
您是否在SQL * PLUS中看到[email protected]的輸出,並且沒有寫入假脫機文件。或者是輸出根本不顯示? – 2012-01-28 06:36:25
您是否檢查過程中沒有「dbms_output.disable」調用? – 2012-01-29 07:05:31
@ Shannon Severance:所以我得到的唯一的dbms輸出是來自「返回代碼:0」的unix腳本。輸出沒有被存儲到存儲過程指示的假脫機文件中。 @ A.B.Cade:程序中沒有這樣的調用。存儲過程是一個簡單的刪除語句,每10k行提交一個循環。 – user1174390 2012-01-30 13:19:32