注册

JDBC执行多条DDL语句报错

Tang 2024/12/19 462 2

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:DM8
【操作系统】:linux
【CPU】:
【问题描述】*:jdbc执行多条DDL语句时报错;
在DM管理工具中可以执行成功,拆分成单条也可以执行成功;

public static void main(String[] args) {
try {
//1.加载 JDBC 驱动程序
System.out.println("Loading JDBC Driver...");
Class.forName(jdbcString);
//2.连接 DM 数据库
System.out.println("Connecting to DM Server...");
conn = DriverManager.getConnection(urlString, userName, password);
//3.通过连接对象创建 java.sql.Statement 对象
state = conn.createStatement();
//-----------------------------------------------------------------------------
//基础操作:此处对应的操作代码为示例库中 PRODUCTION 模式中的
//PRODUCT_CATEGORY 表
//增加
//定义增加的 SQL 这里由于此表中的结构为主键,自增,只需插入 name 列的值
String sql_insert = "CREATE TABLE accessor (\n" +
"id int AUTO_INCREMENT NOT NULL,\n" +
"user_id varchar(32) NOT NULL,\n" +
"user_type varchar(32) DEFAULT NULL NULL,\n" +
"tenant_id varchar(32) NOT NULL,\n" +
"name varchar(64) NOT NULL,\n" +
"type varchar(32) NOT NULL,\n" +
"iaas_id varchar(32) DEFAULT NULL NULL,\n" +
"utc_create timestamp DEFAULT current_timestamp() NOT NULL,\n" +
"utc_modified timestamp DEFAULT NULL NULL,\n" +
"CONSTRAINT pk_accessor_id PRIMARY KEY (id),\n" +
"CONSTRAINT uni_accessor_name UNIQUE (name)\n" +
");\n";
//执行添加的 SQL 语句
// state.execute(sql_insert);
String index_sql = "CREATE INDEX IF NOT EXISTS idx_accessor_utc_create ON accessor (utc_create);";
state.execute(sql_insert+index_sql);
}

报错信息:
dm.jdbc.driver.DMException: 第13 行附近出现错误:
不支持的语句类型
at dm.jdbc.driver.DBError.throwException(DBError.java:696)
at dm.jdbc.b.b.o.E(MSG.java:560)
at dm.jdbc.b.b.o.B(MSG.java:520)
at dm.jdbc.b.b.o.A(MSG.java:501)
at dm.jdbc.b.a.a(DBAccess.java:230)
at dm.jdbc.b.a.a(DBAccess.java:701)
at dm.jdbc.driver.DmdbStatement.executeInner(DmdbStatement.java:723)
at dm.jdbc.driver.DmdbStatement.do_execute(DmdbStatement.java:189)
at dm.jdbc.driver.DmdbStatement.do_execute(DmdbStatement.java:181)
at dm.jdbc.driver.DmdbStatement.execute(DmdbStatement.java:1230)
at cn.com.antcloud.apyunqing.test.service.ExampleTest.main(ExampleTest.java:60)

Process finished with exit code 0

达梦驱动版本:image.png

回答 0
暂无回答
扫一扫
联系客服