一个简短的问题。我想创建一个小的DB2 CLPLUS脚本,如果发生sqlerror并退出,该脚本将退出。问题是如果您使用WHENEVER SQLERROR EXIT也会退出CLPPLUS会话。但这不是我想要的。只有脚本应该被中止。 备注:脚本包含两个或多个sql语句。在第一个sql语句生成错误后,脚本应该退出,其他语句不应运行。
亲切的问候 拉尔夫
答案 0 :(得分:0)
如果您的目标是捕获异常,然后暂时继续处理该异常(包括执行(条件)回滚并随后退出),则应使用WHENEVER SQLERROR CONTINUE ...
,后跟包含异常处理程序的块
如果使用WHENEVER SQLERROR EXIT
,则clpplus的已记录行为将退回到操作系统。如果您不想这样做,请改用WHENEVER SQLERROR CONTINUE...
。
请记住,某些SQLCODES已经由Db2执行了隐式回滚(例如-911和相关操作),因此您可能需要过滤异常SQLCODE。
对于某些具体建议,您应该编辑问题,以在最小可验证的示例中包含代码 AND 预期的行为。