程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> 其他數據庫知識 >> 更多數據庫知識 >> sql無效字符 執行sql語句報錯解決方案

sql無效字符 執行sql語句報錯解決方案

編輯:更多數據庫知識

說起來慚愧,總是犯一些小錯誤,糾結半天,這不應為一個分號的玩意折騰了好半天!
錯誤時在執行SQL語句的時候發出的,信息如下:
Java代碼
[default][2012-11-22 11:35:58,552][ERROR]
Java代碼
[com.primeton.common.connection.impl.synchronization.TraceLoggerStatementSynchronization:49]
Java代碼
Sql[INSERT INTO ASE_SYSTEM_LOG (LOGID,USERID,USERNAME,LOGINTIME) VALUES(?,?,?,?);] execute error.
java.sql.SQLException: ORA-00911: 無效字符
程序代碼如下:
Java代碼
復制代碼 代碼如下:
String sql="INSERT INTO ASE_SYSTEM_LOG (LOGID,USERID,USERNAME,LOGINTIME) VALUES(?,?,?,?);";
con = this.getDataSource().getConnection();
ptt=con.prepareStatement(sql);
ptt.setLong(1, logId);
ptt.setLong(2, userId);
ptt.setString(3,userName);
ptt.setString(4, loginDate);
ptt.executeUpdate();

當執行ptt.excuteUpdate()方法的時候,直接報以上的錯。
以為是sql中參數賦值有問題,但是將sql語句直接copy到PLSQL中執行,卻沒問題,糾結了好久,原來是
復制代碼 代碼如下:
"INSERT INTO ASE_SYSTEM_LOG (LOGID,USERID,USERNAME,LOGINTIME) VALUES(?,?,?,?);"

中多了一個“;”號,坑哥啊,就這玩意,我頓時無語!!!
好啦,如果有報字符異常問題的盆友可以參考下,沒有的就永遠不要再發這樣的低級錯誤啦!
告誡自己一句話:不細心是做不好程序的。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved