控制台抛出这个异常:java.sql.SQLException: ORA-00911: invalid character
查了一下说是oracle字符集设置的问题。我将抛异常的SQL语句在控制台输出如下:
select count(t.id) as onerowc,t.id as areatravelid ,b.id as airpotid from base_areatravel t inner join base_airpot b on b.areaid=t.id group by t.id ,b.id;
以上是完完整整的输出结果,然后我将语句复制到PL/SQL中执行是完全可以的,没有任何异常的。。
而我在程序中定义的sql如下:
String sql="select count(t.id) as onerowc,t.id as areatravelid ,b.id as airpotid from base_areatravel t"+
" inner join base_airpot b on b.areaid=t.id group by t.id ,b.id;";
呵呵,花费了半个多小时终于找到原因::::
哈哈,,定义语句中sql后面多了一个分号。(“;”)晕菜。。这样的话在PL/SQL中是无所谓的,可是Java 的数据库驱动却不识别这样的语句了。汗,,,太大意了。记录下来防止再次犯错,呵呵。。。
查了一下说是oracle字符集设置的问题。我将抛异常的SQL语句在控制台输出如下:
select count(t.id) as onerowc,t.id as areatravelid ,b.id as airpotid from base_areatravel t inner join base_airpot b on b.areaid=t.id group by t.id ,b.id;
以上是完完整整的输出结果,然后我将语句复制到PL/SQL中执行是完全可以的,没有任何异常的。。
而我在程序中定义的sql如下:
String sql="select count(t.id) as onerowc,t.id as areatravelid ,b.id as airpotid from base_areatravel t"+
" inner join base_airpot b on b.areaid=t.id group by t.id ,b.id;";
呵呵,花费了半个多小时终于找到原因::::
哈哈,,定义语句中sql后面多了一个分号。(“;”)晕菜。。这样的话在PL/SQL中是无所谓的,可是Java 的数据库驱动却不识别这样的语句了。汗,,,太大意了。记录下来防止再次犯错,呵呵。。。
本文记录了一次因SQL语句末尾多出的分号导致的ORA-00911异常问题。在PL/SQL中该分号不影响执行,但在Java环境下却引发异常。通过定位并删除多余的分号,成功解决了这一问题。

7682

被折叠的 条评论
为什么被折叠?



