点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
嗨,
我们需要从主过程PROC_FATHER调用过程PROC_CHILD:此PROC_FATHER创建一个#temp表并将其传递给PROC_CHILD过程。 由于业务限制,PROC_CHILD必须包含DML命令,因此我们不能使用" select * from PROC_CHILD"来调用它:因此,我们通过OUT临时表在过程之间传递数据。
当我们从PROC_FATHER调用PROC_CHILD时,返回的结果始终为空,我们无法理解为什么...
这是一个演示我们问题的简单脚本:
SET SCHEMA MY_SCHEMA; DROP TYPE MY_TABLE_DEF; CREATE TYPE MY_TABLE_DEF AS TABLE(" AAA" INT," BBB" INT," CCC" INT); DROP PROCEDURE PROC_CHILD; 创建过程PROC_CHILD(我的MY_TABLE_DEF为MYRES) 语言SQLSCRIPT SQL安全调用者为 开始 像MY_TABLE_DEF一样创建本地临时列表#TEMP; 插入#TEMP VALUES(1,2,3); MYRES = SELECT * from #TEMP; 结束; DROP PROCEDURE PROC_FATHER; 建立程序PROC_FATHER 语言SQLSCRIPT SQL安全调用者为 开始 创建本地临时列表#XYZ,如MY_TABLE_DEF; 致电PROC_CHILD(MYRES => XYZ); 选择*从#XYZ; 结束; -总是在SQL控制台中返回空结果:我们该如何解决呢? 致电PROC_FATHER;
请帮助!
mdias
实际上,在调用PROC_CHILD的PROC_FATHER过程中,您没有将MYRES的值"插入"创建的临时表#XYZ中。 而是创建(内部)表XYZ。
通过执行"父"过程,您可以访问数据而无需使用临时表(在这种情况下,这实际上不是必需的):
感谢弗洛里安(Florian)给您的提示。
终于可以了!
一周热门 更多>