欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

sql无效字符 执行sql语句报错解决方案

程序员文章站 2023-11-29 09:29:22
说起来惭愧,总是犯一些小错误,纠结半天,这不应为一个分号的玩意折腾了好半天! 错误时在执行sql语句的时候发出的,信息如下: java代码 [default][2012-1...
说起来惭愧,总是犯一些小错误,纠结半天,这不应为一个分号的玩意折腾了好半天!
错误时在执行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(?,?,?,?);"

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