1. 概述
本文介紹 Oracle 數據連接 中一些報錯及解決方案。
2. 示例
2.1 取消勾選顯示Oracle所有表選項
設計器菜單欄「文件>選項>高級」下默認勾選「顯示Oracle所有表」,在連接 Oracle 時容易出現性能問題,建議用戶取消勾選後再連接。
2.2 Got minus one from a read call
問題描述:
數據連接失敗,報錯:Got minus one from a read call
原因分析:
當連接數據庫時,是通過連接池的機制進行連接的,數據庫參數:max-session決定連接池的大小,而應用同樣也有一個參數,這個參數表示它連接數據庫連接池所占用的最少資源。
例如:總共有 10 個應用需要連接數據庫,如果每個應用連接數據庫的最小連接數爲 10 ,那麽10個應用總共會有 100 個連接,這樣就要求數據庫連接池的 max-session 必須大於100,否則就會報Got minus one from a read call的錯誤。
解決方案:
1)查看 processes 和 sessions 參數
SQL 語句分别爲:
show parameter processes
show parameter sessions
2)修改 processes 和 sessions 值
SQL 語句分别爲:
alter system set processes=300 scope=spfile;
alter system set sessions=335 scope=spfile;
3)重啓 Oracle
SQL 語句爲:
shutdown immediate;
startup;
2.3 No matching authentication protocol
問題描述:
Oracel 連接報錯:ORA-28040: No matching authentication protocol;
原因分析:
驅動版本不适配。
解決方案:
點擊下載:ojdbc7.jar,把 ojdbc7.jar 放到工程的webapps\webroot\WEB-INF\lib下,并重啓工程。
2.4 數據連接成功,數據庫查詢顯示:數據庫連接失敗!
問題現象:
Oracle 數據連接成功,但數據查詢是表出不來,顯示“數據庫連接失敗!”,日志中報錯爲“嚴重:09:58:46 AWT-EventQueue-0 ERROR [standard] java.lang.RuntimeException: java.sql.SQLException: 不支持的字符集 (在類路徑中添加 orai18n.jar): ZHS16GBK”
解決方案:
點擊下載:orai18n.jar,把 orai18n.jar 放到工程的webapps\webroot\WEB-INF\lib下,并重啓工程。