【问题标题】:Execute SQL command from within a resultset in stored procedure in DB2从 DB2 存储过程的结果集中执行 SQL 命令
【发布时间】: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 不起作用。

感谢您的帮助。

流浪汉

【问题讨论】:

    标签: sql stored-procedures db2 call resultset


    【解决方案1】:

    您需要准备和执行这些语句,因为它们被视为“动态 SQL”。

    PREPARE myStmt FROM SQLCMD; EXECUTE myStmt;

    【讨论】:

      猜你喜欢
      • 2014-07-17
      • 1970-01-01
      • 2014-01-24
      • 2018-09-09
      • 2015-03-06
      • 1970-01-01
      • 2023-03-24
      • 2010-09-08
      • 1970-01-01
      相关资源
      最近更新 更多