【发布时间】:2009-10-14 17:46:02
【问题描述】:
我正在尝试在 IBM i (V5R4) 上创建一个外部存储过程,但是当我尝试运行它时出现错误。
我只想调用一个 RPG 程序,无需传递任何参数或担心返回任何数据。抱歉,我不是 RPG 程序员,也不是 IBM i 方面的专家,所以我可能会遗漏一些非常简单的东西。
创建过程的 SQL:
CREATE PROCEDURE SOMELIB.SOMEPROC ( )
LANGUAGE RPGLE
NOT DETERMINISTIC
NO SQL
EXTERNAL NAME 'OTHERLIB/SOMERG'
PARAMETER STYLE GENERAL;
执行 CALL SOMELIB.SOMEPROC() 时遇到的错误是:
SQL 状态:38501
供应商代码:-443
消息:[CEE9901] 应用程序错误。 RNX1216 在语句 2100000001,指令 X'0000' 处不受 BB1002RG 监控。原因 。 . . . . : 应用程序异常结束,因为发生了异常,没有处理。未处理的异常被发送到的程序的名称是 SOMERG SOMERG 。在发送消息时,程序在高级语言语句编号处停止。如果显示多个语句编号,则该程序是优化的 ILE 程序。优化不允许确定单个语句编号。如果 *N 显示为值,则表示实际值不可用。恢复 。 . . :查看前面列出的低级消息来定位异常的原因。更正所有错误,然后重试请求。
【问题讨论】:
-
在作业日志中检查更高的位置。您应该会看到来自 SOMERG 程序的错误消息。请发布该错误代码。
-
我们无法在作业日志中看到任何其他内容。 :(
-
我重新阅读了您的信息。您看到消息 RNX1216 了吗?这是一条文件错误消息,但它应该会引导您进一步返回另一条消息。这就像跟随一条疯狂的面包屑小径。如果有帮助的话,看起来 RNX1216 来自程序 BB1002RG。确保作业的 LOG 参数设置为 (4 00 *SECLVL)。
-
OK - 追踪错误:原因。 . . . . : 程序 OTHERLIB/BB1002RG 中的 RPG 程序 BB1002RG 在对文件 XYZ 执行隐式打开操作时收到消息 CPF4101。实际文件是 XYZ 所以 BB1002RG 程序(我在第一条消息中引用为 SOMERG )在从命令行调用时工作正常......但是当通过存储过程调用它时,它似乎不知道要使用哪个库找到文件 XYZ。我需要以某种方式传递库列表吗?
标签: stored-procedures ibm-midrange rpgle