【发布时间】:2018-04-09 20:59:28
【问题描述】:
无法对 jdbc Postgres 使用复制命令。下面的代码 sn-p 示例有什么问题。
public boolean loadReportToDB(String date) {
// TODO Auto-generated method stub
Connection connection = DBUtil.getConnection("POSTGRESS");
String fileName = "C:/_0STUFF/NSE_DATA/nseoi_" + date + ".csv";
String sql = "\\copy fno_oi FROM 'C:\\_0STUFF\\NSE_DATA\\nseoi_27102017.csv' DELIMITER ',' CSV header";
try {
PreparedStatement ps = connection.prepareStatement(sql);
System.out.println("query"+ps.toString());
int rowsaffected = ps.executeUpdate();
System.out.println("INT+" + rowsaffected);
return true;
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return false;
}
org.postgresql.util.PSQLException: ERROR: syntax error at or near "\"
Position: 1
at org.
如果我们使用
String sql = "copy fno_oi FROM 'C:\\_0STUFF\\NSE_DATA\\nseoi_27102017.csv' DELIMITER ',' CSV header";
那么没有行被更新
postgres 版本 postgresql-10.0-1-windows-x64
【问题讨论】:
-
您不需要复制语句的 \\ in from。您遇到的错误是什么?
-
服务器上是否存在文件
C:\\_0STUFF\\NSE_DATA\\nseoi_27102017.csv?如果您手动测试语句,它会被加载吗? -
postgres-# \copy fno_oi FROM 'C:_0STUFF\NSE_DATA\nseoi_27102017.csv' DELIMITER ',' CSV header COPY 212
-
同样的命令在 sql shell 中工作。
-
\copy是psql命令 不是 SQL command 您需要使用copy代替:postgresql.org/docs/current/static/sql-copy.html 或使用 CopyManager API:jdbc.postgresql.org/documentation/publicapi/org/postgresql/copy/…
标签: java postgresql jdbc postgresql-copy