如何在 IBM DB2 9.7 for Windows 中使用存储过程创建动态存储过程?
下面的例子是我动态生成的存储过程:
CREATE PROCEDURE DB2ADMIN.INSERT_A (inputVar1 Integer, inputVar2 Integer)
LANGUAGE SQL
BEGIN
INSERT INTO DB2ADMIN.TABLE_A (var1, var2) VALUES (inputVar1, inputVar2);--
END;
然后我有执行语句存储过程:
CREATE PROCEDURE ExecuteScript
(
inputStmt VARCHAR(4000)
)
LANGUAGE SQL
BEGIN
DECLARE stmt VARCHAR(4000);--
SET stmt = inputStmt;--
PREPARE rs_stmt FROM stmt; --
EXECUTE rs_stmt;--
END;
最后我这样调用存储过程:
CALL ExecuteScript('CREATE PROCEDURE DB2ADMIN.INSERT_A (inputVar1 Integer, inputVar2 Integer)
LANGUAGE SQL
BEGIN
INSERT INTO DB2ADMIN.TABLE_A (var1, var2) VALUES (inputVar1, inputVar2);--
END;')
在 DB2 Control Center 和 JAVA JDBC 中调用它时出现以下错误:
com.ibm.db2.jcc.am.SqlSyntaxErrorException: DB2 SQL Error: SQLCODE=-104, SQLSTATE=42601, SQLERRMC=LANGUAGE;LANGUAGE SQL;IS, AS, DRIVER=4.14.122
无论如何,是否可以在存储过程中创建存储过程?或者只是使用 JDBC for IBM DB2 创建它?谢谢。