我使用jdbc(com.ibm.db2.jcc.DB2Driver v.1.4.2)来连接DB2数据库。 如果我必须创建一个类似的程序:
CREATE PROCEDURE "Schema".makeUniqueCode(IN keyName VARCHAR(30),IN fieldName VARCHAR(30), IN tableName VARCHAR(30))
LANGUAGE SQL
BEGIN
DECLARE COD VARCHAR(30);
DECLARE LASTCOD VARCHAR(30);
DECLARE at_end INT DEFAULT 0;
...
END%
我需要更改sql命令终止符;到一个新的char ...我选择%
如果我将create procedure命令放在file.sql中并使用db2 CLI(db2 prompt),则更改sql命令终止符非常简单。
我的问题是我必须通过jdbc驱动程序使用远程连接来执行 创建过程命令。
通过jdbc驱动程序使用远程连接更改sql命令终止符的正确语法是什么?
祝你好运
答案 0 :(得分:2)
命令终止符是连接到数据库的程序的一个功能,而不是数据库本身。数据库完全不知道存在SQL文件,例如,有多个命令由分隔符分隔。 SQL编辑器或客户端是处理它们的地方。
现在你正在编写一个连接到数据库的程序,所以如果你想运行多个命令,你必须自己管理它。 JDBC和其他数据库驱动程序为您提供了执行单个命令的接口。您只需对要运行的每个命令使用该接口。
如果您希望能够通过JDBC的一次调用一次性执行一堆命令,请将它们放在存储过程中或使用类似BEGIN ATOMIC...END
的内容。
答案 1 :(得分:1)
我认为这个问题还没有真正回答,因为Leonardo尝试做的事情完全有效:通过JDBC为CREATE PROCEDURE提交单个DDL语句,但是在程序中包含一个包含多个语句的例程主体。
您可以查看官方DB2示例如何提交此示例。它适用于DDL for trigger,但这也适用于例程的DDL: