【发布时间】:2016-05-30 15:08:19
【问题描述】:
由于在回答过程中进行了一些更改,因此这里是工作程序:
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 定义中的表名。
调用它是:
CALL SQLTEST('targettbl')@
谢谢。
流浪汉
【问题讨论】:
-
如果不替换字符串它工作正常,我只需要找到一种方法来替换变量中的那些字符串。
-
对不起,误读了一点。请注意,您仍然必须验证表名,否则将面临危险。
标签: sql stored-procedures parameters cursor db2