各位用户为了找寻关于sql无效字符 执行sql语句报错解决方案的资料费劲了很多周折。这里教程网为您整理了关于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(?,?,?,?);" 

中多了一个“;”号,坑哥啊,就这玩意,我顿时无语!!!  好啦,如果有报字符异常问题的盆友可以参考下,没有的就永远不要再发这样的低级错误啦!  告诫自己一句话:不细心是做不好程序的。