在 Azure Logic Apps 的工作流程中連接到 Oracle 資料庫

適用於:Azure Logic Apps (使用量 + 標準)

當你的工作流程需要處理 Oracle 資料時,可以用 Azure Logic Apps 中的 Oracle Database 連接器連接 Oracle 資料庫。 你可以存取本地或 Azure 虛擬機上的資料庫。

Oracle 資料庫連接器協助您解決常見的資料整合任務,例如:

  • 將客戶紀錄加入您的資料庫。
  • 更新您的資料庫中的訂單紀錄。
  • 取得、插入或刪除資料表資料列,作為工作流程的一部分。

在標準工作流程中,Oracle Database 內建連接器現已提供公開預覽。 連接器在 Azure Logic Apps 執行環境中執行,能提供比管理型連接器更低延遲與更高吞吐量。 當執行環境能存取 Oracle 端點時,內建連接器就不需要本地資料閘道。 Azure 託管的工作流程可利用虛擬網路整合連接私有 Oracle 端點,而採用混合部署模式的工作流程則可從客戶管理基礎設施存取 Oracle 資料庫。

支援的 Oracle 資料庫版本

下表列出每個連接器所支援的 Oracle DB 版本:

Connector 邏輯應用程式 支援的 Oracle DB 版本
Managed - 消費
-標準
- Oracle 9 及以後版本
- Oracle 資料存取用戶端(ODAC)11.2 及更新版本
內建(預覽) 標準 Oracle 資料庫 11 及以後版本

連接器技術參考

Oracle 資料庫連接器有不同版本,依據 Logic App 的工作流程類型與主機環境而定。

邏輯應用程式 環境 連接器版本
消費 多租用戶 Azure Logic Apps 受控連接器 (顯示於 [共用] 篩選下的連接器資源庫中)。

欲了解更多資訊,請參閱 Oracle 資料庫管理連接器參考資料。
Standard 單一租用戶 Azure Logic Apps、App Service 環境 v3 (僅限 Windows 方案) 和混合式 管理連接器,會出現在連接器畫廊的 Shared 篩選器下;內建連接器(公開預覽),則會出現在連接器畫廊的 Built-in 篩選器下。

內建版本可與 Azure Logic Apps 執行環境同步執行,且不需要本地資料閘道,因為執行環境可以透過網路連接到你的 Oracle 端點。

如需詳細資訊,請參閱:

- Oracle Database 受控連接器參考
- 內建連接器參考

內建連接器操作(預覽)

內建連接器目前支援以下動作:

名稱 參數 Description Returns
執行查詢 (executeQuery) - 查詢 (query):必須為 string 類型。 要執行的 SQL 查詢。

- 查詢參數 (queryParameters):object 類型,可選。 應包含的查詢參數。
執行 SQL 查詢。 SQL 查詢結果為 array.
執行儲存程序 (executeStoredProcedure) - 儲存程序名稱(storedProcedure):類型為 string 時是必需的。 要執行的儲存程序名稱。

- 預存程序參數 (storedProcedureParameters):選擇性,類型為 object。 要包含的儲存程序參數。
執行儲存程序並回傳結果集與輸出參數。 - 結果集(resultSets)型別為string。 儲存程序回傳的結果集清單。

- 輸出參數 (outputParmaters) 類型為 string。 儲存程序回傳的輸出參數值。
取得行數 (getRows) - 表格名稱(tableName):必須使用string類型。 來源資料表的名稱。

- Where 條件 (columnValuesForWhereCondition):選擇性,類型為 object。 用於識別要取得資料列的資料行索引鍵/值組。

- 取得資料列的位移 (skipCount):選擇性,類型為 string。 要跳過的條目數量。 預設值為 0。

- 最大列數(maxcount):(選擇性),與string類型一起使用。 要取得的資料列數上限。 預設值為 0。

- 排序欄位 (orderBy):可選擇,適用於 string 類型。 欄位名稱用於排序查詢結果。

- 選擇欄位 (filterBy):可選,並可選擇類型 string 。 欲從表格或檢視中取得的欄位值。
根據指定條件取得一行或多行資料。 提取的資料列為 array。
取得表格(getTables) 僅回傳目前使用者擁有的資料表 (ownedTables): 可選且有 string 型別。 僅回傳擁有者為所提供使用者的資料表。 取得資料表清單。 表格列表為 array。
插入列 (insertRow) - 表格名稱(tableName):必須使用string類型。 數據表的名稱。

- Set columns(setColumns):object 類型為可選。 行欄位的值。
插入一行。 插入的行,類型為 object。

必要條件

受控連接器必要條件 (耗用量和標準)

  • 下載並安裝內部部署數據閘道。

    此閘道可作為網橋,並提供內部部署資料與應用程式或客戶端之間的安全資料傳輸。 您可以使用相同的閘道安裝搭配多個服務和數據源,這表示您只需要安裝閘道一次。

  • 在安裝內部部署數據閘道的電腦上安裝 Oracle 用戶端。 否則,當您嘗試建立或使用連線時,就會發生錯誤。

  • 為您的閘道安裝建立 Azure 閘道資源。

內建連接器的前置條件(標準、預覽)

  • 確保你的標準邏輯應用程式工作流程能連到你的 Oracle 端點,包括任何主機、埠口、DNS 解析和防火牆規則。

  • 當你建立 Oracle 資料庫連線時,你需要以下數值:

    • Oracle 資料庫伺服器位址
    • 用戶名稱
    • 密碼

    對於伺服器位址,請以以下格式之一指定此值:

    格式 句法 範例
    Easy Connect(非 SSL) < host>:<port>/<database-service-name> localhost:1522/XE
    透明網路底層(TNS)描述符(SSL):完整的 Oracle 資料來源描述符 (描述=(retry_count=<重試次數>)(retry_delay=<延遲時間>)(address=(protocol=tcps)(port=<端口號>)(host=<主機>))(connect_data=(service_name=<服務名稱>))(security=(ssl_server_dn_match=yes))) (description=(retry_count=20)(retry_delay=3)(address=(protocol=tcps)(port=1522)(host=localhost))(connect_data=(service_name=XE))(security=(ssl_server_dn_match=yes)))
  • 在此範例中使用的 Get rows 動作,你需要知道要存取的資料表名稱。

    如果您不知道這項資訊,請連絡 Oracle 資料庫管理員,或從下列語句取得輸出: select * from <table-name>。

已知問題與限制

目前的連接器版本不支援觸發器。 使用任何符合你情境的觸發器來啟動工作流程,然後加入 Oracle 動作。

Connector Limitations
Managed - 帶有複合鍵的表格
- 具有巢狀物件類型的資料表
- 非純量值的資料庫函式
內建 - 沒有專屬的更新或刪除操作。 對於更新與刪除情境,請使用 執行查詢 或 執行儲存程序 動作。
- 有些連線問題可能只在工作流程執行時出現,而非連線建立時。
- 預設查詢逾時為 30 秒。 較長時間執行的作業仍受 工作流程動作和功能主機逾時設定 的限制。
- Oracle 識別碼可以區分大小寫。 確保資料表、檢視和欄位名稱與你架構中定義的識別碼相符。

新增動作

新增和使用 Oracle 動作的步驟會依你使用內建連接器或管理連接器而有所不同。

新增內建連接器動作(標準,預覽)

  1. 在 Azure 入口網站中,開啟您的標準邏輯應用程式資源。

  2. 在設計工具中,開啟您的工作流程。

  3. 依照 通用步驟 ,將你想要的 Oracle 資料庫 動作加入你的工作流程。

    此範例繼續使用 Get rows 動作。

  4. 在連線資訊欄格中,輸入所需資訊,例如你想要的連線名稱、Oracle 資料庫伺服器位址、使用者名稱和密碼,例如:

    Screenshot 顯示了 Azure 入口網站、標準工作流程設計器,以及 Oracle 資料庫中「取得列」動作的連接窗格。

  5. 當您完成時,請選取 [新建]。

  6. 在動作資訊窗格中,輸入你所選動作所需的參數值。

    例如,如果你選擇 「取得列」 動作,請輸入資料表名稱:

    截圖顯示了Azure入口網站、標準工作流程設計器,以及「取得列」動作,並附有範例資料表名稱。

  7. 加入完成工作流程所需的其他步驟。

  8. 儲存工作流程。 在設計師工具列上選取儲存。

新增一個管理連接器動作(消耗與標準)

  1. 在 Azure 入口網站,開啟你的消費或標準邏輯應用程式資源。

  2. 在設計工具中,開啟您的工作流程。

  3. 依照 通用步驟 ,將你想要的 Oracle 資料庫 動作加入你的工作流程。

    此範例會繼續使用取得資料列動作。

  4. 在連線資訊欄中輸入所需的 連線資訊。

  5. 針對 閘道 屬性,選取要使用的 Azure 訂用帳戶和 Azure 閘道資源。

  6. 連線結束後,從 表格名稱 列表中選擇一個表格。

  7. 針對 [ 數據列標識符 ] 屬性,在數據表中輸入您想要的數據列標識碼。

    在下列範例中,作業數據會從人力資源資料庫傳回:

    截圖顯示了Azure的入口網站、工作流程設計器,以及 Get 列動作,並附上資料表名稱和列 ID。

  8. 加入完成工作流程所需的其他步驟。

  9. 儲存工作流程。 在設計師工具列上選取儲存。

排除 Oracle 資料庫連線問題

內建連接器

當內建連接器動作失敗時,請檢視工作流程的執行歷史與診斷日誌。 下表說明常見的狀態代碼及故障排除步驟:

狀態代碼 原因和解決方案
401 驗證失敗。 請確認使用者名稱和密碼、帳號鎖定狀態,以及密碼過期政策。
404 找不到被要求的資料庫物件。 驗證結構名稱、資料表或檢視名稱,包括識別碼外殼,並確認使用者有權限存取該物件。
429 Oracle 資料庫達到資源或會話限制。 檢視 Oracle 的會話限制與工作流程並行設定。
502 執行時無法連上 Oracle 端點。 驗證主機與埠連接、DNS 解析、防火牆規則及 Oracle 監聽器的可用性。
504 作業已逾時。請檢閱查詢的複雜度和索引,並檢查查詢與工作流程主機的逾時設定。

受控連接器

錯誤:無法連線至閘道

原因:內部部署數據閘道無法連線到雲端。

減輕措施:請確定您的閘道正在您安裝閘道的內部部署的電腦上執行,且該電腦能連上網際網路。 避免在可能關閉或進入睡眠狀態的計算機上安裝閘道。 您也可以嘗試重新啟動內部部署數據閘道服務 (PBIEgwService)。

錯誤:正在使用的提供者已被取代:『System.Data.OracleClient 需要 Oracle 用戶端軟體版本 8.1.7 或更高版本。 若要安裝官方提供者,請參閱 https://go.microsoft.com/fwlink/p/?LinkID=272376。

原因:Oracle 用戶端 SDK 未安裝在內部部署數據閘道執行所在的電腦上。

解決方案:在與內部部署資料閘道相同的電腦上下載並安裝 Oracle 用戶端 SDK。

錯誤:資料表 '[Tablename]' 並未定義任何鍵欄位

原因:數據表沒有主鍵。

解決方案:Oracle Database 連接器要求您使用具有主鍵欄位的數據表。