我有一堆SQL脚本(带有shell脚本包装器)来卸载像这样的数据
EXPORT TO /tmp/out.csv OF DEL MODIFIED BY NOCHARDEL COLDEL, DATESISO
MESSAGES /tmp/out.msg SELECT WIDGETID
...
我想以Oracle的方式向脚本添加错误处理程序:
WHENEVER SQLERROR EXIT FAILURE;
SPOOL /tmp/out.csv;
SELECT WIDGETID...
SPOOL OFF;
根据DB2的文档,这可以在存储过程C,Perl,REXX中完成,而不是其他任何内容......
如何在SQL脚本中完成?
我正在运行DB2 / LINUXX8664 9.7.2。
答案 0 :(得分: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
您可以将存储的proc调用放在脚本文件中并运行类似db2 -tvf runexport.txt
的内容,或者将db2
命令放在linux脚本文件中,并使用linux脚本foo来处理db2返回码。 / p>