🔎TIBCO Spotfire 連線資料庫錯誤排查:ORA-12505 與 No more data available to read 全面解析

 

前言

在安裝與設定 TIBCO Spotfire Server 時,我們必須先正確連線到後端的 Repository 資料庫(通常是 Oracle 或 SQL Server)。但在實務中,許多人會遇到兩大常見錯誤:

  1. ORA-12505: Connection refused, the specified SID was not recognized by the Oracle server

  2. No more data available to read

這篇文章將以軟體工程師的角度,詳細解析這兩種錯誤發生的原因與解決方法,並且教你如何正確設定 Spotfire 與資料庫的連線參數。




常見錯誤 1:ORA-12505

錯誤訊息:

ORA-12505: Connection refused, the specified SID (spotfire) was not recognized by the Oracle server

原因解析:

  • 你的 JDBC 連線字串中指定的 SID(例:spotfire)在 Oracle 伺服器中不存在

  • 可能是搞混了 SIDService Name

  • Oracle Listener 沒有註冊該 SID / Service Name

  • 連線到的 IP 與 Port 對應的不是該資料庫實例

排查方法:

  1. 在 Oracle 主機上執行:

    lsnrctl status

    查看目前 listener 註冊的 SIDService Name

  2. 用 sqlplus 測試連線:

    sqlplus username@//220.133.47.3:1521/ServiceName

    如果 Service Name 正確,就能成功登入。

  3. 修改 JDBC URL

    • Service Name

      jdbc:tibcosoftwareinc:oracle://220.133.47.3:1521;ServiceName=正確名稱
    • SID

      jdbc:tibcosoftwareinc:oracle://220.133.47.3:1521;SID=正確名稱



常見錯誤 2:No more data available to read

錯誤訊息:

No more data available to read

原因解析:

  • 你選擇的驅動程式與實際資料庫類型不符

  • 例如:

    • Driver template 選了 Oracle DataDirect

    • 但 Port 使用的是 1433(SQL Server 預設埠)

    • 帳號是 SQL Server 的 sa,這在 Oracle 中不存在

  • 導致 JDBC 在資料交換時讀到無法解析的資料,直接中斷

排查方法:

  1. 先確認資料庫類型(Oracle 還是 SQL Server)

  2. 如果是 Oracle → 改回 Port 1521,使用 Oracle 帳號與正確 SID/Service Name

  3. 如果是 SQL Server → Driver template 改成 SQL Server DataDirect,Port 用 1433,並指定 Database Name:

    jdbc:tibcosoftwareinc:sqlserver://220.133.47.3:1433;DatabaseName=spotfire



密碼星號顯示多寡與實際長度無關

很多人會疑惑:「我輸入密碼只有 8 位,為什麼顯示超多星號?」
事實上,這只是 GUI 固定顯示的遮罩符號長度,與實際密碼字數無關,也不會影響連線。




總結

  • ORA-12505 → 檢查 Oracle SID / Service Name 與 listener 註冊狀況

  • No more data available to read → 驅動程式與資料庫類型不符,或 Port 錯誤

  • 密碼顯示星號數量不影響登入

  • 設定前一定要先確認資料庫類型、IP、Port、SID/Service Name 是否正確




💡 如果你想要一次設定好 Spotfire 與資料庫連線,可以先跟 DBA 確認以下資訊:

  • 資料庫類型(Oracle / SQL Server)

  • Host / Port

  • Oracle:SID 還是 Service Name

  • SQL Server:Database Name

  • 使用者帳號與密碼

有了正確資訊,再依據本文設定,基本上就能一次連線成功。

留言

這個網誌中的熱門文章

🛠【ASP.NET Core + Oracle】解決 ORA-00904 "FALSE": 無效的 ID 錯誤與資料欄位動態插入顯示問題

🛠【實戰排除教學】從 VS Code 的 _logger 錯誤,到 PowerShell 找不到 npm/serve,再到 Oracle ORA-03135 連線中斷——一次搞懂!

🔎如何在 Oracle PL/SQL 儲存過程中為文字欄位加入換行符號(CHR(10))——以 Updlcmremark 為例