如何在Azure Data Factory Oracle 2.0連結服務上設定Oracle語系?

2025-10-14T02:59:32.3633333+00:00

原本使用Oracle 1.0連結服務沒有資料不完整或無資料問題,但升級為2.0後發現會有資料不完整或者無資料的情況,查找後確認是Oracle語系問題,我需要將NLS_LANG設定為AMERICAN_AMERICA.UTF8資料才能正常,但我不知道要在哪裡設定,不曉的有沒有人遇到跟我一樣的問題,謝謝!

Azure Data Factory
Azure Data Factory
用於大規模擷取、準備和轉換資料的 Azure 服務。
0 則留言 沒有留言
{count} 則投票

1 個回答

排序依據: 最實用
  1. Smaran Thoomu 32,520 信譽點數 Microsoft 外部員工 仲裁者
    2025-10-14T11:18:32.2+00:00

    此回覆使用翻譯工具完成,如有語意不通之處,敬請見諒。

    CC Tsai 蔡介政 (中光電智能物流),

    感謝您分享詳細資訊。您說得沒錯 - 這個問題與升級到 Oracle 連接器 2.0 後的 Oracle 語言設定(NLS_LANG)有關。

    在 Oracle 連接器 v2.0 中,無法直接在連接服務(Linked Service)中設定 NLS_LANG。這個設定需要在執行 Integration Runtime (IR) 的環境層級進行配置。

    如果您使用的是 自我代管的 Integration Runtime (Self-hosted IR),可以嘗試以下步驟:

    1. 開啟 系統內容 → 環境變數
    2. 新增一個系統變數:
         變數名稱:NLS_LANG  
         變數值:AMERICAN_AMERICA.UTF8
      
    3. 重新啟動 Integration Runtime (DIAHostService) 服務。

    如果您使用的是 Azure IR,則無法直接修改此變數。此時可以考慮:

    • 改用自我代管的 IR,或
    • 在 Oracle 端執行一個預查詢 (pre-query) 以設定語言,例如:
        ALTER SESSION SET NLS_LANGUAGE='AMERICAN' NLS_TERRITORY='AMERICA';
      

    請告訴我們您目前使用的 Integration Runtime 類型,以便我們提供更精確的建議。


您的回答

答案可由問題作者標示為「已接受」,而由仲裁者標示為「推薦」,這可協助使用者知道答案解決了作者的問題。