关于postgresql:使用java中的i命令在postgres中导入.sql文件

import .sql file in postgres using i command from java

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

1
2
3
4
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);


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

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

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

干杯,


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

如果您通过JDBC连接到数据库,则不使用psql,因此您无法使用其命令(\i\o等)。