說(shuō)起來(lái)慚愧,總是犯一些小錯(cuò)誤,糾結(jié)半天,這不應(yīng)為一個(gè)分號(hào)的玩意折騰了好半天!
錯(cuò)誤時(shí)在執(zhí)行SQL語(yǔ)句的時(shí)候發(fā)出的,信息如下:
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: 無(wú)效字符
程序代碼如下:
Java代碼
復(fù)制代碼 代碼如下:
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();
當(dāng)執(zhí)行ptt.excuteUpdate()方法的時(shí)候,直接報(bào)以上的錯(cuò)。
以為是sql中參數(shù)賦值有問(wèn)題,但是將sql語(yǔ)句直接copy到PLSQL中執(zhí)行,卻沒(méi)問(wèn)題,糾結(jié)了好久,原來(lái)是
復(fù)制代碼 代碼如下:
"INSERT INTO ASE_SYSTEM_LOG (LOGID,USERID,USERNAME,LOGINTIME) VALUES(?,?,?,?);"
中多了一個(gè)“;”號(hào),坑哥啊,就這玩意,我頓時(shí)無(wú)語(yǔ)!!!
好啦,如果有報(bào)字符異常問(wèn)題的盆友可以參考下,沒(méi)有的就永遠(yuǎn)不要再發(fā)這樣的低級(jí)錯(cuò)誤啦!
告誡自己一句話:不細(xì)心是做不好程序的。