2011-10-06 33 views
1

我有一大堆的SQL腳本(用shell腳本包裝)卸載像這樣DB2中的異常/錯誤處理程序?

EXPORT TO /tmp/out.csv OF DEL MODIFIED BY NOCHARDEL COLDEL, DATESISO 
MESSAGES /tmp/out.msg SELECT WIDGETID 
    ... 

數據我想一個錯誤處理程序添加到腳本甲骨文做它的方式:

WHENEVER SQLERROR EXIT FAILURE; 
SPOOL /tmp/out.csv; 
SELECT WIDGETID... 
SPOOL OFF; 

根據DB2的文檔,這可以在存儲過程中完成,C,Perl,REXX,沒有別的...

這怎麼能在SQL腳本中完成?

我正在運行DB2/LINUXX8664 9.7.2。

+0

@Peter Mortensen除了你的編輯我的答案是挑剔的,你刪除了我提供的鏈接之一,並通過刪除故意段落中斷將兩個單獨的想法合併爲一個。請小心。 – brandong

回答

1

您可以使用DB2命令行命令處理器並獲取其返回碼。 http://publib.boulder.ibm.com/infocenter/db2luw/v9r5/topic/com.ibm.db2.luw.admin.cmd.doc/doc/r0010411.html

或者您可以使用SYSPROC.ADMIN_CMD過程並使用其返回碼。 http://publib.boulder.ibm.com/infocenter/db2luw/v9r5/topic/com.ibm.db2.luw.sql.rtn.doc/doc/r0023573.html

你可以把存儲過程調用腳本文件,並運行像db2 -tvf runexport.txt或將db2命令在Linux腳本文件,並使用Linux腳本富來處理DB2返回代碼。