每当sqlerror退出时,db2 clpplus

时间:2019-03-18 07:13:29

标签: db2 whenever

一个简短的问题。我想创建一个小的DB2 CLPLUS脚本,如果发生sqlerror并退出,该脚本将退出。问题是如果您使用WHENEVER SQLERROR EXIT也会退出CLPPLUS会话。但这不是我想要的。只有脚本应该被中止。 备注:脚本包含两个或多个sql语句。在第一个sql语句生成错误后,脚本应该退出,其他语句不应运行。

亲切的问候 拉尔夫

1 个答案:

答案 0 :(得分:0)

如果您的目标是捕获异常,然后暂时继续处理该异常(包括执行(条件)回滚并随后退出),则应使用WHENEVER SQLERROR CONTINUE ...,后跟包含异常处理程序的块

如果使用WHENEVER SQLERROR EXIT,则clpplus的已记录行为将退回到操作系统。如果您不想这样做,请改用WHENEVER SQLERROR CONTINUE...

请记住,某些SQLCODES已经由Db2执行了隐式回滚(例如-911和相关操作),因此您可能需要过滤异常SQLCODE。

对于某些具体建议,您应该编辑问题,以在最小可验证的示例中包含代码 AND 预期的行为。