IBM i上的外部存储过程

Eug*_*e M 3 stored-procedures rpgle ibm-midrange

我正在尝试在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; 
Run Code Online (Sandbox Code Playgroud)

执行CALL SOMELIB.SOMEPROC()时出现的错误是:

SQL状态:38501
供应商代码:-443
消息:[CEE9901]应用程序错误。BB1002RG在语句2100000001的X'0000'指令中未监视RNX1216。原因。。。。。:由于发生异常且未处理异常,因此应用程序异常结束。将未处理的异常发送到的程序的名称为SOMERG SOMERG。发送消息时,程序已在高级语言语句编号处停止。如果显示了多个语句号,则该程序是优化的ILE程序。优化不允许确定单个语句号。如果* N显示为一个值,则表示实际值不可用。恢复。。。:请参阅前面列出的低级消息,以查找导致异常的原因。更正所有错误,然后重试该请求。

Tra*_*bst 5

您的过程正在调用未设置库列表的RPG程序。您可以执行以下两项操作之一:

1)使用EXTFILE关键字在RPG程序中更改F-spec以使库合格。

2)从存储过程中调用CL程序,该程序将适当的库添加到库列表中,并确保考虑到先前调用可能已经存在该库的事实。然后让CL程序调用RPG程序。