使用jdbc驱动程序的远程连接更改sql命令终止符的正确语法是什么

时间:2013-02-08 10:22:42

标签: sql jdbc db2

我使用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命令终止符的正确语法是什么?

祝你好运

2 个答案:

答案 0 :(得分:2)

命令终止符是连接到数据库的程序的一个功能,而不是数据库本身。数据库完全不知道存在SQL文件,例如,有多个命令由分隔符分隔。 SQL编辑器或客户端是处理它们的地方。

现在正在编写一个连接到数据库的程序,所以如果你想运行多个命令,你必须自己管理它。 JDBC和其他数据库驱动程序为您提供了执行单个命令的接口。您只需对要运行的每个命令使用该接口。

如果您希望能够通过JDBC的一次调用一次性执行一堆命令,请将它们放在存储过程中或使用类似BEGIN ATOMIC...END的内容。

答案 1 :(得分:1)

我认为这个问题还没有真正回答,因为Leonardo尝试做的事情完全有效:通过JDBC为CREATE PROCEDURE提交单个DDL语句,但是在程序中包含一个包含多个语句的例程主体。

您可以查看官方DB2示例如何提交此示例。它适用于DDL for trigger,但这也适用于例程的DDL:

https://www.ibm.com/support/knowledgecenter/SSEPGG_11.1.0/com.ibm.db2.luw.apdv.sample.doc/doc/java_jdbc/s-TbTrig-java.html