2

我正在尝试使用 "\i E:/dump.sql" 命令从 postgres 中的 .sql 文件导入数据库,它在 postgres 命令提示符下工作正常,但是当我从 java 尝试相同时,它在 "\" 处引发错误,我的代码是

connection = DriverManager.getConnection( "jdbc:postgresql://localhost:5432/database","postgres", "passwd");
PreparedStatement ps3 = connection.prepareStatement("\\i E:/dump.sql");
boolean res3= ps3.execute();
System.out.println("imported succesfully .."+res3);
4

2 回答 2

3

使用 JDBC 驱动程序/接口,您只能谈论 SQL,您尝试的是发出 PostgreSQL 命令行工具 ( psql) 特定命令。那是行不通的。

如果你坚持这样做,你可以使用这种Runtime.getRuntime().exec(...)方法,比如

Runtime.getRuntime().exec( "psql -f dump.sql" );

干杯,

于 2013-07-04T11:47:18.590 回答
1

长话短说——你不能。\i不是 PostgreSQL 命令(如:PostgreSQL 数据库引擎)。它的命令psql- 这是用于与数据库交互的命令行工具。

如果您通过 JDBC 连接到数据库,则您没有使用 psql,因此您不能使用它的命令(\i\o)。

于 2013-07-04T12:27:28.293 回答