DB2中的异常/错误处理程序?

时间:2011-10-06 19:55:32

标签: db2

我有一堆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。

1 个答案:

答案 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>