无法将复制命令与jdbc Postgres一起使用。下面的代码片段示例有什么问题。使用副本Postgres jdbc的正确方法
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的64位
你不需要复制语句中的\\ from。你得到的错误是什么? – fvu
服务器上是否存在'C:\\ _ 0STUFF \\ NSE_DATA \\ nseoi_27102017.csv'文件?如果您手动测试语句,它会被加载吗? – fvu
postgres-#\ copy fno_oi FROM'C:\ _ 0STUFF \ NSE_DATA \ nseoi_27102017.csv'DELIMITER','CSV标头 COPY 212 –