在存储过程内部 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);
由于在回答过程中做了一些更改,这里是工作过程:
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);