在执行SELECT INTO时获取SQL错误代码

时间:2019-01-21 04:50:08

标签: ibm-midrange rpgle

我正在RPGLE中执行select into。它在开发中一切正常,但是在部署到生产环境时开始给我一个SQL错误。 SQL错误是:

  

-579(在未定义该功能或过程的情况下,尝试读取数据的对象类型对象名称)。

请注意,TABLE1(对此Request也进行了更改,添加了一个字段,并与Program一起移至生产环境)仅在以下语句中使用,而未在F-spec中声明。

试图在开发环境中重新创建它,但是没有运气。可从多个程序中调用该程序,但是它们不会为这些程序创建作业日志。调用堆栈的开头始终有一个存储过程(总是从SP调用程序)

我认为这与调用程序中的某些设置有关。

Exec Sql Select WHS                            
           into :WHS1                         
           from Table1
           Where Company = :COMP
             and WHS = :WHSE;                     

1 个答案:

答案 0 :(得分:2)

从多个存储过程中调用该程序。其中一些带有Contains SQL

CONTAINS SQL表示该函数可能包含一些SQL,但不会通过SQL读取或写入存储在数据库中的任何数据。示例包括SET。在存储过程中使用CONTAINS SQL时,如果调用的过程或其中一个尝试使用SQL读取数据库,则它将失败。如果没有CONTAINS SQL,则存储过程将默认使用MODIFIES SQL DATA,并且不会失败。