無法將複製命令與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 –