在存储过程内部 sql 定义中使用参数作为 table 名称

Use in parameter as table name in stored procedure inner sql definition

由于在回答过程中做了一些更改,这里是工作过程:

CREATE OR REPLACE PROCEDURE SQLTEST(in intab VARCHAR(50))
LANGUAGE SQL
BEGIN ATOMIC
DECLARE SQLCMD VARCHAR(1024);
DECLARE tabname VARCHAR(50);
SET tabname=intab;

FOR v AS cur1 CURSOR FOR SELECT ID, CMD from COMMANDTBL
DO 
  SET SQLCMD = REPLACE(v.CMD, 'TABREPL', tabname); 

PREPARE myStmt FROM SQLCMD; 
EXECUTE myStmt;
END FOR;
END@

如图所示,我想调用带有 in 参数的过程,该参数将成为内部 sql 定义中的 table 名称。

调用它是:

CALL SQLTEST('targettbl')@

谢谢。

流浪汉

在单个表达式中执行逻辑是否有效?

SET SQLCMD = REPLACE(v.CMD, 'TABREPL', tabname);