2013-04-24 65 views
0

我收到以下異常在java中的這個sql查詢。java.sql.SQLException:ORA-01861:文字不匹配格式字符串

statement2.executeUpdate("INSERT INTO visit_header " 
+ "VALUES ('"+visitnumber+"','"+date+"','"+cookie+"','"+ip+"','"+duration+"','"+pageref 
+"','"+startpagename+"','"+endpagename+"','"+pgvw+"','"+starttime+"','"+endtime+"','" 
+country+"','"+state+"','"+city+"','"+browser+"','"+os+"','"+device+"')"); 

唯一的例外是:

java.sql.SQLException: ORA-01861: literal does not match format string. 

,我沒有得到我要去的地方錯了。

謝謝。

+0

這一個沒有幫助你? http://stackoverflow.com/questions/10766034/literal-does-not-match-format-string-error-on-updating-sql-table – lakshman 2013-04-24 12:03:33

回答

0

也許在您的字段中,如pgvw包含'或\,或者您的日期和開始時間在使用前不會格式化。

2

首先,你真的不應該通過連接字符串來生成SQL語句。這讓你打開SQL注入黑客。您應該使用PreparedStatement並設置值,JDBC可以正確地轉義它們。

錯誤很可能是由於開始時間和結束時間格式錯誤所致。您可能需要顯示堆棧跟蹤以及您嘗試插入的一些示例數據。我會建議試着在這行代碼之後放置一個斷點,複製生成的連接字符串,然後直接在數據庫中運行它。