當前為5.1版本文檔,更多實例內容將在最新幫助文檔中展現,點選跳轉至 最新版幫助文檔

Oracle 資料連結常見錯誤解決方案

1. 概述

本文介紹 Oracle 資料連結 中一些報錯及解決方案。

2. 範例

  •  在 Oracle 9i 版本中,精度為 0 的欄位值會被識別成正文而不是數值「該欄位值用 column.getSize() 計算得到的是 38 ,所以會被識別成正文屬性」;其他版本的 Oracle 未有此現象出現。

  • BI 平台 Oracle 連結池在一段時間沒有使用會自動釋放,之所以查看連結池有之前的連結,是因為後面使用者連結時又重新啟用,所以不會因為連結一直得不到釋放而造成問題。

2.1 報錯相關

  • 在 2019-01-15 之前的版本中,若為 Spider 引擎開啓實時資料,直連 Oracle 資料庫的話,超過 22 位的欄位需要使用 SQL 語句轉義新增到 FineBI 中。原因是 FineBI 直連會在欄位前加 8 位字元,而 Oracle 超過 30 位識別符號在將表新增到 FineBI 中時就會報錯ORA-000972。

    注:在 2019-01-15 之後的 FineBI5.1 版本已經修復該問題,可開啓實時資料,直接新增最多 30 位的欄位/表名至 FineBI 中。

    SQL 轉義語句可使用:select “超過22位欄位名的欄位” as 轉義名 from 表,如下圖所示:

s1.png

所有以 ORA 開頭的報錯都是 Oracle 資料庫報錯,可以透過在網路上對報錯資訊進行搜尋,排查報錯。

2.2 ONS configuration failed

問題描述

Oracle19c 資料連結報錯:create connection error java.lang.IllegalArgumentException: ONS configuration failed

如下圖所示:

image.png

解決方案:

Linux/Unix 修改 startWebLogic.sh 檔案,搜尋「setDomainENV.sh」,然後在「.${DOMAIN_HOME}」這句的上一行插入「JAVA_OPTIONS="-Doracle.jdbc.fanEnabled = false"」,如下圖所示:

1600675821247567.png

2.3 表名/表頭亂碼

問題描述:

Oracle 資料連結,新增 DB 表,表名/表頭亂碼。

解決方案:

將 Oracle 資料庫的編碼改成SIMPLIFIED CHINESE_CHINA.ZHS16GBK

2.4 Oracle 11 無法讀取 DB 表

問題描述:

Oracle11無法取 DB 表,日誌報錯如下圖所示:

3.png

解决方案:

點選下載:orai18n.jar,把orai18n.jar放到工程的webapps\webroot\WEB-INF\lib下,並重啓工程。

2.5 Got minus one from a read call

問題描述:

資料連結失敗,報錯:Got minus one from a read call

s2.png

原因分析:

當連結資料庫時,是透過連結池的機制進行連結的,資料庫參數: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.6 資料連結成功後無法選擇模式

問題描述:

Oracle 版本 9.2.0.4 ,使用 2020-01-15 的 JAR ,連結成功後無法選擇模式,也不顯示數值。

原因分析:

驅動版本不適配。

解决方案:

根據實際情況換成支援的驅動,驅動下載連結:驅動下載官方連結

範例:換成 ojdbc6 驅動才可以正常顯示資料和選擇模式。

2.7 No matching authentication protocol

問題描述:

Oracel 連結報錯:ORA-28040: No matching authentication protocol;

原因分析:

驅動版本不適配。

解决方案:

點選下載:ojdbc7.jar,把 ojdbc7.jar 放到工程的webapps\webroot\WEB-INF\lib下,並重啓工程。

附件列表


主題: 连接到数据
已經是第一篇
已經是最後一篇
  • 有幫助
  • 沒幫助
  • 只是瀏覽
  • 评价文档,奖励 1 ~ 100 随机 F 豆!