java.sql.SQLException: ORA-00911: 无效字符

本文记录了一次解决ORA-00911:无效字符错误的经历,在使用Oracle JDBC进行SQL查询时,因在SQL语句末尾误加了分号导致异常。通过去除分号成功解决了问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

[getStillOpenSlStatusChanges- getStillOpenSlStatusChanges error:
java.sql.SQLException: ORA-00911: 无效字符

at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:289)
at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:573)
at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1891)
at oracle.jdbc.ttc7.TTC7Protocol.parseExecuteDescribe(TTC7Protocol.java:830)
at oracle.jdbc.driver.OracleStatement.doExecuteQuery(OracleStatement.java:2391)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:2672)
at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:589)
at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:527)
at com.hp.sqm.slam.slaenginenextgen.persistence.dao.impl.SLStatusChangeDAOImpl.getStillOpenSlStatusChanges(SLStatusChangeDAOImpl.java:174)
at com.hp.sqm.slam.slaenginenextgen.persistence.dao.impl.SLStatusChangeDAOImplTest.getStillOpenSlStatusChanges(SLStatusChangeDAOImplTest.java:144)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.testng.internal.MethodHelper.invokeMethod(MethodHelper.java:643)
at org.testng.internal.Invoker.invokeMethod(Invoker.java:558)
at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:722)
at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1023)
at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:137)
at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:121)
at org.testng.TestRunner.runWorkers(TestRunner.java:891)
at org.testng.TestRunner.privateRun(TestRunner.java:615)
at org.testng.TestRunner.run(TestRunner.java:496)
at org.testng.SuiteRunner.runTest(SuiteRunner.java:323)
at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:318)
at org.testng.SuiteRunner.privateRun(SuiteRunner.java:290)
at org.testng.SuiteRunner.run(SuiteRunner.java:195)
at org.testng.TestNG.createAndRunSuiteRunners(TestNG.java:904)
at org.testng.TestNG.runSuitesLocally(TestNG.java:871)
at org.testng.TestNG.run(TestNG.java:779)
at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:75)
at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:127)
DEBUG [main] com.hp.sqm.slam.slaenginenextgen.persistence.dao.impl.SLStatusChangeDAOImplTest getStillOpenSlStatusChanges- After getStillOpenSlStatusChanges(), There is nothing we got!
INFO [main] com.hp.sqm.slam.slaenginenextgen.persistence.dao.impl.DataAccessServiceBaseTest tearDown- closing EntityManagerFactory
DEBUG [main] org.hibernate.jdbc.ConnectionManager closeConnection- releasing JDBC connection [ (open PreparedStatements: 0, globally: 0) (open ResultSets: 0, globally: 0)]
DEBUG [main] org.hibernate.jdbc.ConnectionManager aggressiveRelease- aggressively releasing JDBC connection

 

查了老半天,原来在sql结束时加了‘;’,而jdbc 对sql的要求是不加的, 哎,问题解决了就好,以此为戒!!

转载自:http://leonzhan.iteye.com/blog/585142

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值