【发布时间】:2015-05-27 02:31:26
【问题描述】:
我尝试了上面的代码。我设法编译。但是,当我运行时,它给了我错误:
Exception in thread "main" org.postgresql.util.PSQLException: ERROR: syntax error at or near "\"
Position: 1
显示我运行的查询是错误的:
String query ="\\COPY tmp from 'E:\\load.csv' delimiter ',';";
查询的System.out.println 是:
query string: \COPY tmp from 'E:\load.csv' delimiter ',';
我在 PostgresSQL 客户端中运行查询:\COPY tmp from 'E:\load.csv' delimiter ',';,它可以工作。
发生了什么?
Class.forName (driver);
conn = DriverManager.getConnection(host+dbname,user,password);
stmt = (java.sql.Statement) conn.createStatement();
//
PreparedStatement prepareUpdater = null;
conn.setAutoCommit(false);
String query ="\\COPY tmp from 'E:\\load.csv' delimiter ',';";
System.out.print("query string: "+query);
System.out.println("Query:"+query);
prepareUpdater = conn.prepareStatement(query);
prepareUpdater.executeUpdate();
prepareUpdater.close();
【问题讨论】:
-
命令是COPY,没有反斜杠
-
我需要运行的实际命令是 \COPY 如果我只放 COPY,我可以将 .csv 文件加载到表中 - 错误必须是超级用户
-
\COPY 是 psql 内部命令,不是 SQL 命令。只有 psql 能理解。
标签: java postgresql csv