DB2/400 - 当日志没有返回条目时如何使用 DBUJRN 命令?

问题描述 投票:0回答:1

长期读者,第一个问题!

我正在尝试在 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 输出:

“没有从日记转换的条目

命令未运行。有效性检查器检测到错误。”

ibm-midrange db2-400 journal journaling
1个回答
0
投票

我想你也许能够定义一个 SQL 条件处理程序来允许存储过程继续。

但实际上

CALL QSYS2.QCMDEXC()
是一个相当老套的解决方案。适合快速和肮脏,这不是你真正想在生产中看到的东西。

你应该做什么

  • 将 DBUJRN 的调用嵌入到 CL 程序中,并通过
    MONMSG
  • 进行适当的错误处理
  • 通过
    CREATE PROCEDURE ... LANGUAGE CL...
  • 将 CL 程序定义为存储过程

现在你的 SQL 存储过程就可以使用

CALL MYCLSTOREDPROC

© www.soinside.com 2019 - 2024. All rights reserved.