適用於: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。 |
必要條件
Azure 帳戶和訂閱。 申請一個免費的 Azure 帳號。
要從中連線至 Oracle 資料庫的邏輯應用程式資源和工作流程。
此連接器僅提供動作,不提供觸發程序。 您可以使用任何觸發器來啟動工作流程。 要建立 Logic App 資源與工作流程,然後新增觸發器,請參考:
受控連接器必要條件 (耗用量和標準)
-
此閘道可作為網橋,並提供內部部署資料與應用程式或客戶端之間的安全資料傳輸。 您可以使用相同的閘道安裝搭配多個服務和數據源,這表示您只需要安裝閘道一次。
在安裝內部部署數據閘道的電腦上安裝 Oracle 用戶端。 否則,當您嘗試建立或使用連線時,就會發生錯誤。
內建連接器的前置條件(標準、預覽)
確保你的標準邏輯應用程式工作流程能連到你的 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 動作的步驟會依你使用內建連接器或管理連接器而有所不同。
新增內建連接器動作(標準,預覽)
在 Azure 入口網站中,開啟您的標準邏輯應用程式資源。
在設計工具中,開啟您的工作流程。
依照 通用步驟 ,將你想要的 Oracle 資料庫 動作加入你的工作流程。
此範例繼續使用 Get rows 動作。
在連線資訊欄格中,輸入所需資訊,例如你想要的連線名稱、Oracle 資料庫伺服器位址、使用者名稱和密碼,例如:
當您完成時,請選取 [新建]。
在動作資訊窗格中,輸入你所選動作所需的參數值。
例如,如果你選擇 「取得列」 動作,請輸入資料表名稱:
加入完成工作流程所需的其他步驟。
儲存工作流程。 在設計師工具列上選取儲存。
新增一個管理連接器動作(消耗與標準)
在 Azure 入口網站,開啟你的消費或標準邏輯應用程式資源。
在設計工具中,開啟您的工作流程。
依照 通用步驟 ,將你想要的 Oracle 資料庫 動作加入你的工作流程。
此範例會繼續使用取得資料列動作。
在連線資訊欄中輸入所需的 連線資訊。
針對 閘道 屬性,選取要使用的 Azure 訂用帳戶和 Azure 閘道資源。
連線結束後,從 表格名稱 列表中選擇一個表格。
針對 [ 數據列標識符 ] 屬性,在數據表中輸入您想要的數據列標識碼。
在下列範例中,作業數據會從人力資源資料庫傳回:
加入完成工作流程所需的其他步驟。
儲存工作流程。 在設計師工具列上選取儲存。
排除 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 連接器要求您使用具有主鍵欄位的數據表。