【发布时间】:2011-11-29 01:00:53
【问题描述】:
我有一个包含多个查询和表的 ORACLE SQL 脚本,我想在程序开始时从我的 java 程序运行该脚本,以确保一切都在正确的位置。我找到了运行脚本的代码,但由于某种原因它不起作用。任何人都可以提供样品,以便我可以遵循它。
这是我发现的:
try {
String line;
Process p = Runtime.getRuntime().exec ("psql -U sas -d oracle -h @localhost -f Lab_05_Tables.sql");
BufferedReader input =new BufferedReader(new InputStreamReader(p.getInputStream()));
while ((line = input.readLine()) != null) {
System.out.println(line);
}
input.close();
}
catch (Exception err) {
err.printStackTrace();
}
但它不起作用。
错误
java.io.IOException: Cannot run program "psql": CreateProcess error=2, The system
cannot find the file specified
【问题讨论】:
-
什么不起作用?你有错误吗?
-
psql不是 PostgreSQL 命令行吗?它也能处理 Oracle 吗? -
问题是你举的例子是使用用于PostgreSQL脚本的程序psql,而不是Oracle。
-
错误提示找不到
psql。也许您需要指定完整路径。而且 psql 能否处理 Oracle 是值得怀疑的。你可能想要sqlplus。 -
要么使用sqlplus,要么使用JDBC (razorsql.com/articles/oracle_jdbc_connect.html)