使用JDBC在DB2中执行两个DML语句

时间:2013-06-14 10:14:42

标签: syntax db2 alter-table dml

我正在尝试使用JDBC在DB2中执行两个DML语句,并且我不断收到语法错误:

ALTER TABLE "TEST" ALTER COLUMN "COL1" SET DATA TYPE INT;
ALTER TABLE "TEST" ALTER COLUMN "COL1" SET NOT NULL;

如果我逐一执行它们,一切都会好的。

我尝试过没有分号,第一个语句只有一个分号。我也试过几个\ r \ n,我真的无法理解问题是什么。

例外情况如下:

Caused by: com.ibm.db2.jcc.am.SqlSyntaxErrorException: DB2 SQL Error: SQLCODE=-104, SQLSTATE=42601, SQLERRMC=;
ALTER TABLE "TEST";1" SET DATA TYPE INT;<space>, DRIVER=3.65.77

有谁知道可能是什么问题?

1 个答案:

答案 0 :(得分:0)

显然,execute()方法只接受单个语句,而不接受由您尝试的任何内容分隔的多个语句。它在API文档中有明确说明:&#34;执行给定的SQL语句&#34;。

您可以将多个语句包装到(单个)复合语句中:

begin execute immediate 'alter ...'; execute immediate 'alter ...'; end