【发布时间】:2017-10-26 11:33:25
【问题描述】:
我在一个字符串中查询了哪一批 sql 命令,
String SQLQuery =
"CREATE VOLATILE TABLE v1;
CREATE VOLATILE TABLE v2;
INSERT INTO v1;
//do stuff
INSERT INTO v2;
//do stuff
UPDATE xx;
//do stuff
DROP TABLE v1;
DROP TABLE v2;"
我尝试使用 executeUpdate() 执行它们,executeBatch() 两者都在 java jdbc 客户端失败,该客户端在 Teradata 客户端中工作。
Error mesg:
[TeraJDBC 15.10.00.35] [Error 3576] [SQLState 25000] Data definition not valid unless solitary.
Java 代码:
PreparedStatement stmt10 = null;
try {
stmt10 = conn.prepareStatement(SQLQuery);
//stmt10.executeUpdate();
stmt10.executeBatch();
//conn.commit();
} catch (Exception ex) {
throw new Exception(ex.getMessage());
} finally {
if (stmt10 != null) {
stmt10.close();
}
}
我该怎么做?
【问题讨论】:
-
executeBatch是与addBatch一起使用,发送一批命令一次执行。这应该是一个简单的Statement和execute我的东西 -
@AxelH 我也试过只是执行(),它失败并出现同样的错误
-
您可能会使用this answer 的变体,它使用SqlTool 来解析和执行SQL 命令文件。