长期读者,第一个问题!
我正在尝试在 DB2 中编写一个存储过程,该过程将使用批处理作业和 DBUJRN 工具定期将日志条目写入文件。我遇到的问题是,有时我调用 DBUJRN 的时间窗口太窄,并且没有条目。这是一个问题,因为 DBUJRN 会出错而不是继续存储过程(并且我看到从存储过程生成的错误非常通用,而不是我可以可靠地说“此文件的该窗口中没有条目”) 。我在文档中找不到与此相关的任何内容。有没有办法让 DBUJRN 命令继续执行此错误?
DBUJRN 命令示例:
DBU11/DBUJRN JRN(JRNLIB/JOURNAL) FILE(LIBA/FILEA) OUTFILE(LIBB/FILEA) RCVRNG(*CURCHAIN) FROMTIME(05032024 152100) TOTIME(05032024 172100) JRNCDE((R))
AS/400 输出:
“没有从日记转换的条目
命令未运行。有效性检查器检测到错误。”
我想你也许能够定义一个 SQL 条件处理程序来允许存储过程继续。
但实际上
CALL QSYS2.QCMDEXC()
是一个相当老套的解决方案。适合快速和肮脏,这不是你真正想在生产中看到的东西。
你应该做什么
MONMSG
CREATE PROCEDURE ... LANGUAGE CL...
现在你的 SQL 存储过程就可以使用
CALL MYCLSTOREDPROC