【发布时间】:2020-08-14 11:29:21
【问题描述】:
我想通过 Java 执行一个文件夹中的所有 sql 脚本。它不起作用,因为之前它创建了一个新模式(命名为用户名)并且没有采用 sql 脚本中编写的模式。现在我得到了下面显示的异常的 44 倍。连接正常。哦,我正在使用 DB2。
我尝试了以下方法:
public void sqlScripts() throws IOException, SQLException {
File folder = new File("E:/maProject/sql");
File[] listOfFiles = folder.listFiles();
for (File file : listOfFiles) {
BufferedReader reader = null;
Statement statement = null;
try {
statement = con.createStatement();
reader = new BufferedReader(new FileReader(file));
statement.execute(String.valueOf(file));
} catch (Exception e) {
e.printStackTrace();
}
}
}
这是我得到 44 倍的异常:
com.ibm.db2.jcc.am.SqlSyntaxErrorException: DB2 SQL Error: SQLCODE=-7, SQLSTATE=42601, SQLERRMC=\;E:, DRIVER=4.26.14
我做错了什么?
提前致谢
【问题讨论】:
-
不,不是重复
-
是否必须使用您的 java 代码运行这些文件?您是否允许为此运行其他基于 java 的工具?
-
您正在尝试执行文件 name 而不是其内容。
-
IBM Data Server Driver Package包含名为 CLPPlus 的基于 JDBC 的工具。它具有执行脚本的能力。检查一下。
标签: java sql database db2 sql-scripts