java.sql.SQLException: ORA-00923: 未找到要求的 FROM 關鍵字
Spring Boot 連線資料庫異常
在搭建新專案時 , 連線資料庫出現下面異常:
Druid-ConnectionPool-Create-819680566 [ERROR] com.alibaba.druid.pool.DruidDataSource Line:2469 create connection SQLException, url: jdbc:oracle:thin:@127.0.0.1:1521:odsdb, errorCode 923, state 42000
java.sql.SQLException: ORA-00923: 未找到要求的 FROM 關鍵字
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:288)
at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:745)
at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:207)
at oracle.jdbc.driver.T4CStatement.executeForDescribe(T4CStatement.java:801)
at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:1039)
at oracle.jdbc.driver.T4CStatement.executeMaybeDescribe(T4CStatement.java:841)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1126)
at oracle.jdbc.driver.OracleStatement.executeQuery(OracleStatement.java:1274)
at com.alibaba.druid.pool.vendor.OracleValidConnectionChecker.isValidConnection(OracleValidConnectionChecker.java:84)
at com.alibaba.druid.pool.DruidAbstractDataSource.validateConnection(DruidAbstractDataSource.java:1307)
at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1588)
at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2466)
解決方案 :
- 檢查SQL 是否正確
- 檢視配置檔案 validationQuery 配置是否正確
validationQuery:Druid用來測試連線是否可用的SQL語句,預設值每種資料庫都不相同:
Mysql:SELECT 1;
SQLSERVER:SELECT 1;
ORACLE:SELECT ‘x’ FROM DUAL;
PostGresql:SELECT ‘x’;
validationQuery什麼時候會起作用?
當Druid遇到testWhileIdle,testOnBorrow,testOnReturn時,就會驗證連線的有效性,驗證規則如下:
如果有相關資料庫的ValidConnectionChecker,則使用ValidConnectionChecker驗證(Druid提供常用資料庫的ValidConnectionChecker,包括MSSQLValidConnectionChecker,MySqlValidConnectionChecker,OracleValidConnectionChecker,PGValidConnectionChecker);
個人錯誤資訊總結,僅供參考.
相關文章
- yield from 關鍵字的 return 語句
- ORA-00923: FROM keyword not found where expected
- ORA-02291: 違反完整約束條件 (*) - 未找到父項關鍵字
- DM 關鍵字、遮蔽關鍵字
- out關鍵字和ref關鍵字的區別
- let關鍵字和const關鍵字
- final關鍵字和static關鍵字
- 關鍵字
- this關鍵字
- synchronized關鍵字的原理synchronized
- static關鍵字的作用
- Java 的 static 關鍵字Java
- this的HXD“super”關鍵字
- 網路智慧化新要求 SDN成為數字化轉型關鍵力
- abstract關鍵字 super 關鍵字 類與繼承繼承
- PHP static 關鍵字和 self 關鍵字例項化的區別PHP
- volatile 關鍵字
- @Transient關鍵字
- friend關鍵字
- Auto關鍵字
- Swift 關鍵字Swift
- defer關鍵字
- typedef關鍵字
- params關鍵字
- dynamic關鍵字
- 4關鍵字
- [JavaScript] this 關鍵字JavaScript
- Volatile關鍵字
- static關鍵字
- super關鍵字
- final關鍵字
- synchronized 關鍵字synchronized
- const關鍵字
- Voliate關鍵字
- throw關鍵字
- 說說iOS中的常用的關鍵字static ,class(僅限Swift關鍵字)iOSSwift
- mysql 中的explain關鍵字MySqlAI
- java中的instanceof關鍵字Java