【发布时间】:2011-04-28 07:12:35
【问题描述】:
为了执行整个 SQL 脚本文件[包括创建表语句和一些定义创建表的规则]。我找到了这个解决方案来实现它--->“只要你不介意对 Ant 有运行时依赖,就有一种从 Java 执行 SQL 脚本的好方法,而无需自己阅读它们。在我看来,这种依赖是在您的情况下非常合理。这是示例代码,其中 SQLExec 类位于 ant.jar 中:
private void executeSql(String sqlFilePath) {
final class SqlExecuter extends SQLExec {
public SqlExecuter() {
Project project = new Project();
project.init();
setProject(project);
setTaskType("sql");
setTaskName("sql");
}
}
SqlExecuter executer = new SqlExecuter();
executer.setSrc(new File(sqlFilePath));
executer.setDriver(args.getDriver());
executer.setPassword(args.getPwd());
executer.setUserid(args.getUser());
executer.setUrl(args.getUrl());
executer.execute();
}
不知道行不行!!!
任何人都可以提供一些提示来解决上述解决方案吗?我的意思是如何让代码工作,并让我知道执行 SQL 脚本文件的任何其他解决方案!!!
谢谢, 马赫什
【问题讨论】:
-
试试看?你的具体问题是什么?
-
此外,您是否尝试过针对stackoverflow.com/questions/5801838/…提出的许多解决方案?
-
尝试自己有什么问题?你为什么期望别人做你的工作?
-
问题中提到的解决方案 (stackoverflow.com/a/3055008/948268) 适用于具有
insert、create table等语句的脚本。但是对于具有create or replace trigger(我认为是带有 PL/SQL 块的脚本)的脚本,它会因 java.sql.SQLSyntaxErrorException: ORA-00900: invalid SQL statement 而失败。有人可以帮忙解决这个问题吗?