从 DB2 存储过程的结果集中执行 SQL 命令
Posted
技术标签:
【中文标题】从 DB2 存储过程的结果集中执行 SQL 命令【英文标题】:Execute SQL command from within a resultset in stored procedure in DB2 【发布时间】:2016-02-18 10:17:51 【问题描述】:我有以下存储过程:
CREATE PROCEDURE SQLTEST()
LANGUAGE SQL
BEGIN ATOMIC
DECLARE SQLCMD VARCHAR(1024);
FOR v AS cur1 CURSOR FOR SELECT ID, CMD from COMMANDTBL
DO
SET SQLCMD= v.CMD;
"CALL" SQLCMD;
END FOR;
END?
COMMANDTBL 具有列 ID 和 CMD,其中 CMD 具有 SQL 命令。 CMD 是 1024 VARCHAR。 在这个测试中,它们是另一个表的 2 个插入
INSERT INTO TARGETTBL(TARGET, TARINT) VALUES ('TEST', 100);
INSERT INTO TARGETTBL(TARGET, TARINT) VALUES ('TEST2', 200);
例如。
我的问题是“呼叫”部分。我有 DB2 v9.7,但如果也有在较低版本上运行的解决方案,那就太好了。 我还没有找到任何关于如何运行它的指针,并且一个简单的 EXEC 或 EXECUTE 不起作用。
感谢您的帮助。
流浪汉
【问题讨论】:
【参考方案1】:您需要准备和执行这些语句,因为它们被视为“动态 SQL”。
PREPARE myStmt FROM SQLCMD;
EXECUTE myStmt;
【讨论】:
以上是关于从 DB2 存储过程的结果集中执行 SQL 命令的主要内容,如果未能解决你的问题,请参考以下文章