服务器之家:专注于服务器技术及软件下载分享
分类导航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|数据库技术|

服务器之家 - 数据库 - Sql Server - sql无效字符 执行sql语句报错解决方案

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

2019-12-25 14:53MSSQL教程网 Sql Server

说起来惭愧,在执行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(?,?,?,?);" 


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

延伸 · 阅读

精彩推荐