我正在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;
答案 0 :(得分:2)
从多个存储过程中调用该程序。其中一些带有Contains SQL
。
CONTAINS SQL
表示该函数可能包含一些SQL,但不会通过SQL读取或写入存储在数据库中的任何数据。示例包括SET。在存储过程中使用CONTAINS SQL
时,如果调用的过程或其中一个尝试使用SQL读取数据库,则它将失败。如果没有CONTAINS SQL
,则存储过程将默认使用MODIFIES SQL DATA
,并且不会失败。