我无法从变量调用架构和命名过程

2020-09-20 10:29发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)我的Prodecure的架构和名...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我的Prodecure的架构和名称存储在表的列中。 在另一个过程中,我将模式和名称放入变量中,但是现在不知道如何从变量中调用过程。 救救我

表为:

从ETL_CONTROL.ALL_PROCEDURES WHERE CODIGO_PROCEDURE = 1中选择NOMBRE_PROCEDURE; 

注释者存储过程为:

我无法调用过程,因为该过程的名称已包含在变量中:(请帮助我!

创建过程" P1942494358"。" LLAMA_PROCEDURE2"()
 语言SQLSCRIPT
 SQL安全调用程序
 默认模式P1942494358
 如
 开始
 DECLARE PROCEDURE1 varchar(200);

 从ETL_CONTROL.ALL_PROCEDURES中选择NOMBRE_PROCEDURE到PROCEDURE1中
 在哪里CODIGO_PROCEDURE = 1;

 呼叫:PROCEDURE1 ||;  - 错误
 --CALL ||:PROCEDURE1 ||;  - 错误
 --CALL'ETL_CONTROL.SP_CARACT'()';-错误
 END; 

(10.3 kB)
2条回答
callcenter油条
2020-09-20 11:02 .采纳回答

call语句不能以动态方式(例如,从变量)解释过程名称。 为此,您必须使用动态SQL

例如:

创建过程" P1942494358"。" LLAMA_PROCEDURE2"()
 语言SQLSCRIPT
 SQL安全调用程序
 默认模式P1942494358
 如
 开始
 DECLARE PROCEDURE1 varchar(200);
 声明dynamic_statement nvarchar(255);

 从ETL_CONTROL.ALL_PROCEDURES中选择NOMBRE_PROCEDURE到PROCEDURE1中
 在哪里CODIGO_PROCEDURE = 1;

 dynamic_statement:='CALL'||  :PROCEDURE1 ||  '();';

 EXEC:dynamic_statement;

 END; 

关于,
弗洛里安语

一周热门 更多>