Loading

對 Oracle 連線錯誤進行疑難排解

發佈日期: Apr 30, 2025
描述

如何進行 Oracle 連接錯誤疑難排解。

Oracle 驅動程式需要具有唯一格式的非常特定的連接陳述式,但可能並不總是需要 TNSNames.ora 檔案。例如,如果您僅安裝 Tableau 所提供的 Oracle 檔案,且沒有獨立的 Oracle 用戶端,則 Oracle 錯誤訊息仍將引用 TNSNames.ora 檔案,進而使疑難排解更加複雜。

    解決方案

    通常,糾正進階 Oracle 連接對話方塊中的路由或命名語法,或者使用 .WORLD 資料庫全名,即可解決大部分 Oracle 連接問題。如果連接錯誤需要進一步進行疑難排解,請參閱以下列出的 5 種常見連接錯誤。

    • ORA-03113:通訊頻道上的檔案結尾
    • ORA-12154:TNS:無法解析指定的正確識別碼:HOST 值不正確或全網域名稱稱不正確或未知
    • ORA-12514:TNS 接聽程式目前無法識別連接描述項中請求的服務:SERVICE 值不正確
    • ORA-12541:TNS:無接聽程式:PORT 值不正確
    • ORA-00932:資料類型不一致

      ORA-03113:通訊頻道上的檔案結尾

      ORA-03113 是任何干擾 Oracle 工作階段的問題的全捕獲類型錯誤。造成該錯誤的原因可能有很多。請參閱下表,了解疑難排解指南。

      • 請參閱此錯誤特有的 Oracle 文件:我的 Oracle 支援
      • Oracle 建議您檢查網路問題並審查 SQL*Net 設定。
      • 如果您連線到 Oracle 9.2.0.5,則在許多情況下,此錯誤的主要原因是發生 Oracle 錯誤 3010227。要求您的 Oracle 資料庫管理員套用 Oracle 修補程式 9.2.0.6 或您的伺服器適用的其他修補程式。
      • 將 Oracle 初始化參數 'STAR_TRANSFORMATION_ENABLED' 設定為 FALSE。
      • 測試變更擷取重新整理的排程時間
      • 或者,如果您想進一步測試此問題,請遵循以下列出的可選程序。

      步驟 1 

      從 Tableau Desktop 開始頁面,選擇連接到資料

      步驟 2 

      連接頁面上,按一下 Oracle,然後按一下確定

      關於完成連接步驟的更多資訊,請參閱 Desktop 說明中的 Oracle 資料庫主題

      步驟 3 

      1. 在加入區域,暫留在自訂 SQL 表上,直到顯示編輯圖示,然後按一下該圖示。
      2. 複製「編輯自訂 SQL」對話方塊中的查詢。
      SELECT "NumericBins", "Key" as "Key",
      "NumericBins", "Measure E-2" AS "Measure E-2",
      "NumericBins", "Measure E-1" AS "Measure E-1",
      "NumericBins", "Measure E+0" AS "Measure E+0",
      "NumericBins", "Measure E+1" AS "Measure E+1",
      "NumericBins", "Measure E+4" AS "Measure E+4",
      "NumericBins", "Measure E+7" AS "Measure E+7"
      FROM "TestV1", "NumericBins" "NumericBins"

       
      其中 "TestV1" 是 Tableau 中您的連接名稱。

      步驟 4 

      在連接到此資料庫的 SQL 工作階段中,貼上並執行查詢。預期回應為錯誤 ORA-7445:遭遇異常:核心傾印,確認問題為預期的 ORA-3113。

      ORA-12154:TNS:無法解析指定的連線識別碼

      透明網路底層 (TNS) 無法解析服務名稱時,出現 ORA-12154。服務名稱在 TNSNames.ora 檔案中指定,該檔案位於 %ORACLE_HOME%\network\admin\ 資料夾下。通常,TNSNames.ora 檔案中的資訊不正確時會出現此錯誤。例如:

      • 資料庫名稱不包含 .world 副檔名。
      • SERVICE_NAME 或 HOST 變量不正確。

      要解決此問題,請按照以下列出的順序,嘗試以下 3 種疑難排解選項中的其中一種。

      選項 1:編輯 TNSNames.ora

       提供資料庫全名,包括位於以下兩個位置的 .world 副檔名:

      • TNSNames.ora 檔案。

        以及

      • 「連接」頁面的「伺服器」文字方塊。

      選項 2:確保 Tableau Server 執行身分使用者帳戶具有存取 TNSNames.ora 的權限(僅限 Tableau Server)

      如果安裝 Tableau Server,請完成以下程序以確保 Tableau Server 執行身份使用者帳戶具有存取 TNSNames.ora 檔案位置的權限。如果執行身份使用者帳戶不具有權限,則 Tableau Server 無法存取 Oracle 資料來源詳細資訊。

      步驟 1 

      驗證電腦上 TNSNames.ora 檔案或者等效的 SQLNET.ora 或 LDAP.ora 檔案的位置。

      附註:預設情況下,TNSNames.ora 檔案位於 <oracle 目錄>\network\admin 目錄下。例如,C:\Oracle_Client\network\admin。

      步驟 2 

      確認 TNS_ADMIN 變量指向步驟 1 中描述的一個或多個檔案的位置。

      附註:要檢查 TNS_ADMIN 變量,請按一下「開始」按鈕,然後選擇控制面板 > 系統。按一下進階系統設定,按一下進階索引標籤,然後按一下環境變量按鈕。
      系統變數檔案路徑必須為 UNC 格式。

      步驟 3 

      在瀏覽器中開啟 TSM:https://<tsm-computer-name>:8850。有關詳情,請參閱登入到 Tableau 服務管理器 Web UI

      步驟 4 

      按一下安全索引標籤,然後按一下執行身分服務帳戶索引標籤。
      在「伺服器執行身分使用者」下,複製使用者名稱欄位中的資訊。

      步驟 5 

      前往 TNSNames.ora 檔案所在的資料夾。

      步驟 6 

      在資料夾上按一下滑鼠右鍵並選擇屬性。按一下安全索引標籤,然後按一下編輯按鈕。

      步驟 7 

      在群組或使用者名稱下,按一下新增按鈕。

      步驟 8 

      輸入要選擇的物件名稱文字方塊中,貼上在步驟 6 中複製的執行身份使用者帳戶的詳細資訊。

      步驟 9 

      完成後,按一下確定

      步驟 10 

      在「權限」區域,確保選擇完全控制修改核取方塊。

      步驟 11 

      按一下確定以關閉對話方塊。

         

        選項 3:驗證 TNSNames.ora 中的所有資訊是否正確無誤

         如果以上疑難排解步驟未解決問題,請繼續閱讀並完成程序,以驗證 TNSNames.ora 檔案中的其他資訊是否正確提供。

        TNSNames.ora 檔案如下所示:

        QAORCL10.world =

        (DESCRIPTION =

        (ADDRESS_LIST =

        (ADDRESS = (PROTOCOL = TCP)(HOST = MY_HOST_NAME)(PORT = 1521))

        )

        (CONNECT_DATA =

        (SERVICE_NAME = MY_SERVICE_NAME)

        )

        )

        此檔案中三個要關注的變數為 HOSTPORTSERVICE_NAME。從 TNSNames.ora 檔案複製這些變數,並讓變數保持可用。這些變量區分大小寫。以下步驟描述如何為您的連接提供這些變量。

        步驟 1 

        從 Tableau Desktop 開始頁面,選擇連接到資料

        步驟 2 

        連接頁面上,按一下 Oracle

        步驟 3 

        提供 TNSNames.ora 檔案中的以下資訊:

        • 在伺服器名稱文字方塊中,輸入 HOST 名稱。
        • 在服務文字方塊中,輸入 SERVICE_NAME。
        • 在通訊埠文字方塊中,輸入 PORT 編號。
        • 指定是使用 Windows 身份驗證還是特定的使用者名和密碼,然後按一下連接

        附註:變數區分大小寫。

        步驟 4 

        從「架構」下拉式清單中選擇一個架構,將一個表格拖曳到加入區域,然後按一下前往工作表

        步驟 5 

        完成設定 Oracle 連接以使用 TNSNames.ora 或 LDAP.ora 一文中的步驟。

        重要資訊:

        • 確保以 ASCII 編碼儲存您使用的 TNSNames.ora 檔案。使用除 ASCII 之外的任何其他編碼(例如 UTF-8 或 Unicode)會導致 ORA-12154 錯誤訊息。
        • 即使已在電腦上安裝 Oracle 軟體,通常也需要進行這些步驟。

        步驟 6

        從 Tableau 驅動程式頁面下載適當的 Oracle 驅動程式並安裝。即使您的電腦安裝 Oracle 驅動程式,也可能與 Tableau 不相容且需要「驅動程式」頁面上指定的版本。

        ORA-12514:TNS 接聽程式目前無法識別連接描述項中請求的服務

        通常,SERVICE 值不正確時出現此錯誤。

        要解決此問題,需找出正確的 SERVICE 值,開啟位於 %ORACLE_HOME%\network\admin\ 資料夾下的 TNSNames.ora 檔案。必要時,參閱 ORA_12154 下的步驟。

        ORA-12541:TNS:無接聽程式

        通常,PORT 值不正確時出現此錯誤。

        若要解決此問題,請以 1521 或 1526 取代 PORT 值。嘗試使用目前未使用的值。

        ORA-00932:資料類型不一致

        連線到 Oracle 時或從 Oracle 資料來源建立資料擷取時,出現此錯誤。通常,此錯誤因安裝不正確的 Oracle 驅動程式而引起。

        要解決此問題,請從驅動程式頁面安裝適用您目前使用的 Tableau 版本的正確 Oracle 驅動程式。

        除了上述常見錯誤外,如果您使用的是 Tableau Desktop/Server 2020.2 或更新版本,並遇到效能問題,例如擷取重新整理需要很長時間,您可以嘗試下載和安裝 Oracle OCI 驅動程式。 請參閱相關連結中的文章。可從此處下載驅動程式。

         

          其他資源

          建議

          如果您的電腦上未安裝 Oracle 用戶端,請確保從您的資料庫管理員處取得必要檔案。如果 Oracle 資料連接錯誤仍然存在,請執行以下動作:

          • 檢查用於建立 TNS_ADMIN 變量的 TNSNames.ora 資料夾路徑。
          • 重新啟動電腦,確保 TNS_ADMIN 變量已識別。
          • 檢查 Tableau 中使用的 Oracle 連接名稱是否與 TNSNames.ora 網路服務名稱條目完全一致。此名稱區分大小寫。
          • 在有些情況下,將需要重新啟動 Windows,然後 Oracle 驅動程式才能取得 TNS_ADMIN 系統變量
          • 與當地 IT 團隊聯絡,確認 TNSNames.ora 檔案是最新版本。
          • 如果 Oracle 連接使用 LDAP,請確保同時包括 SQLNet.ora 檔案和 TNSNames.ora 檔案。

          ORA-12154:TNS 無法解析服務名稱提示

          附註:我們會盡力確保第三方內容引用的正確性,但所提供的資訊如有變更,恕不另行通知。

          Creating/refreshing Oracle Extracts Take Significantly Longer In Version 2020.2-And-Later

          Error: "ora-00907: missing right parenthesis" upon running Custom SQL


           
          知識文章編號

          001473195

           
          正在載入
          Salesforce Help | Article