如何解决 java.sql.SQLException: ORA

一、前言
环境:.3.1. + jdk1.8 + .6/
二、报错排查
今天给大家科普一个很典型的报错,很别致,因为在常用的mysql数据库中是不会由于该问题报错的,这个错是只发生在数据库中,那究竟是什么报错呢?
这件事还得从我之前接手的那个项目说起,因为它用的数据库正是,虽然现在明令收费,企业一般得购买才能使用,但是不涉及推广使用,私下使用,还是可以的,所以这个问题就在我不常见的视野中发生了 。
ORA-00911报错!跟mysql报错方式很雷同啊 。正是这个报错,有小伙伴知道是啥问题么?如果还有小伙伴不知道,那么请看我,教你一遍,只需要看一遍,你便永远会记得它!好吧!那么我就以这个ORA-00911报错开始讲起 。
三、报错分析
我们先来看一段该报错截图:

如何解决 java.sql.SQLException: ORA

文章插图
其实从以上这段截图中,就能分析并且定位到该sql,但是如果你看了我给你分析的方案之后,你可以第一眼排查是不是该问题导致,so?你们接着看 。
像ORA-00911报错,发生的报错的场景会很多,你们知道有哪些么?比如是我诺列的一些,仅供参考:
比如sql语句中有输入中文逗号(全角逗号) 。比如sql语句中实际语句和列类型不匹配,比如将数值列赋值为字符串 。比如sql语句末尾带有分号(" ;")结尾 。... ...
所以,至于推理到【无效字符】,那就简单很多了,你只需要检查一下你的sql语句末尾是否带有分号 。
因为没有mysql那么智能,并不能解析带分号的sql语句 。其实犯这个问题,也情理之中 。像常写java或者C的小伙伴,其语法就是语句结束必须以分号结束,当你手写sql,很正常也是会分号结尾,从而也就导致了这一次事故的发生 。
所以在使用 连接库时,你就记得不应该在sql上加分号!它不支持解析 。
四、解决方案
如何解决 java.sql.SQLException: ORA

文章插图
【如何解决 java.sql.SQLException: ORA】原因 sql语句末尾带有";",把分号去掉就ok了 。你学会了吗?
而我也测试了mysql数据库中自定义sql,无论你是在.java手写sql还是.xml手写sql,都是支持解析的,不会有报错的风险 。
.java
.xml
以上是我本地实测是没有任何问题的 。所以说mysql使用起来还是较为顺手呀 。
... ...