Oracle Database
Oracle資料庫是由Oracle公司開發的關聯式資料庫管理系統。 連線至內部部署 Oracle Database,以執行各種動作,例如在表格中的列上建立、更新、取得和刪除。
此連接器適用於以下產品和區域:
| 服務 | Class | Regions |
|---|---|---|
| 副駕駛工作室 | 進階 | 所有 Power Automate 區域 |
| 邏輯應用程式 | 標準 | 所有 Logic Apps 區域, 但下列區域除外: - 美國國防部 (DoD) |
| Power Apps | 進階 | 所有 Power Apps 區域 |
| Power Automate(自動化服務) | 進階 | 所有 Power Automate 區域 |
| 連絡人 | |
|---|---|
| 名稱 | Microsoft |
| URL |
Microsoft LogicApps 支援 Microsoft Power Automate 支援 Microsoft Power Apps 支援 |
| 連接器中繼資料 | |
|---|---|
| Publisher | Microsoft |
| 網站 | https://www.oracle.com/database/ |
| 隱私策略 | https://www.oracle.com/legal/privacy/ |
本文說明 Oracle Database 連接器的作業,適用於 Azure Logic Apps、Microsoft Power Apps 和 Microsoft Power Automate。 您可以使用此連接器連線至內部部署 Oracle Database 或已安裝 Oracle Database 的 Azure 虛擬機器。
- 若要在 Power Apps 中使用此連接器,請參閱 從 Power Apps 連線到 Oracle 資料庫。
有什麼新鮮事
下表說明 Oracle Databaseconnector 的新更新和功能:
| Update | Description |
|---|---|
| 2018 年 10 月 | 支援 Oracle 預存程序。 |
| 2018 年 1 月 | 支援 Oracle 檢視作為唯讀表格。 |
先決條件
支援的 Oracle 版本:
- Oracle 9 及更新版本
- Oracle Data Access Client (ODAC) 11.2 和更新版本
若要連線至已安裝 Oracle 資料庫的內部部署 Oracle 資料庫或 Azure 虛擬機器,您必須 安裝內部部署資料閘道。
此閘道可作為橋接器,並在內部部署資料與應用程式或用戶端之間提供安全的資料傳輸。 您可以將相同的閘道安裝與多個服務和資料來源搭配使用,這表示您可能只需要安裝一次閘道。
如需 Microsoft Power Apps,另請參閱 在 Power Apps 中管理內部部署資料閘道。
針對 Azure Logic Apps,您也必須先建立閘道安裝的 Azure 閘道資源,才能使用連接器。 如需詳細資訊,請參閱 從邏輯應用程式連線到內部部署資料。
在您安裝內部部署資料閘道的電腦上安裝 Oracle 用戶端。 請務必從 Oracle 安裝 64 位元 Oracle Data Provider for .NET,並選取 Windows 安裝程式版本,因為該
xcopy版本不適用於內部部署資料閘道:適用於 Windows x64 的 64 位元 ODAC 12c 第 4 版 (12.1.0.2.4)。 您可以執行下列 PowerShell 命令來驗證安裝:[System.Data.Common.DbProviderFactories]::GetFactoryClasses()。 如果已安裝 Oracle 用戶端,您應該會在結果中看到「OracleClient 資料提供者」。備註
如果未安裝 Oracle 用戶端,當您嘗試建立或使用連線時,就會發生錯誤。 如需詳細資訊,請參閱 常見的連線錯誤一節。
在執行任何連接器作業之前,請在 Oracle 用戶端上將名為 ORA_NCHAR_LITERAL_REPLACE 的環境變數設定為 TRUE。
此設定 會啟用 NCHAR 字串常值取代,當包含資料庫字集以外的字元的字串常值插入 NCHAR/NVARCHAR/NCLOB 類型直欄時,可防止資料遺失。 當陳述式執行時,字串常值會轉換為內部格式,然後正確解碼為 Unicode。
已知問題與限制
下列清單說明 Oracle Datbase 連接器的一些已知限制:
不支援:
- 任何具有複合索引鍵的資料表
- 表格中的巢狀物件類型
- 具有非純量值的資料庫函式
- Oracle Functions,因此不會在 UI 中列出。
當您在 Oracle 伺服器上叫用預存程序時,會套用下列限制:
- 不支援 OUT 參數。
- 傳回值無法使用,因為預存程序不會傳回任何結果。
回應大小限制為 8MB。
請求大小限制為 2MB。
支援 Oracle 原生查詢,但有下列限制:
- 需要閘道版本 3000.63.4 (10 月版本) 或更新版本。
- 不支援 RefCursor。
- 不支援 OUT 參數。
- 只能傳回一個結果集。
下列資料類型無法作為查詢選項述詞:
- DATE
- TIMESTAMP
- TIMESTAMP 與時區
- TIMESTAMP 與當地時區
如果任何 Oracle 查詢或預存程序執行時間超過 110 秒,動作會逾時。
插入和更新表格不會傳回完整項目。 它們只會傳回作業的輸入屬性。
若要取得 [取得資料列 ] 作業的決定性分頁結果,需要 [主索引鍵]。
插入資料列作業需要您提供 [主索引鍵] 資料行的明確值,即使已定義預設/自動遞增值也一樣。
由於 UI 元件限制,在設計階段轉譯的資料表清單無法顯示超過 2,048 個元素,這是 [取得資料表 ] 作業的預設頁面大小,例如:
- 名為 'Table name' 的 [取得資料列 ] 動作參數的資料表清單。
- Power Apps 設計工具中「建立連線/選擇資料表」流程的資料表清單。
如果您在使用 Oracle 資料庫時觀察到延遲,請在閘道機器或每個閘道機器上安裝最新的 64 位 Oracle 資料存取元件 (ODAC) (如果閘道是叢集)。
如果 Oracle 連線建立失敗並逾時,請嘗試使用具有最低權限的 Oracle 認證。 如此一來,連線就會更輕量級,這可能有助於您避免在建立連線期間遇到逾時。
常見的連線錯誤
錯誤:無法連線到閘道
原因:內部部署資料閘道無法連線到雲端。
風險降低:請確定您的閘道是在您安裝閘道的內部部署電腦上執行,並具有網際網路連線。 避免在可能已關閉或進入睡眠狀態的電腦上安裝閘道。 您也可以嘗試重新啟動內部部署資料閘道服務 (PBIEgwService)。
錯誤:正在使用的提供者已被取代:「System.Data.OracleClient 需要 Oracle 用戶端軟體版本 8.1.7 或更高版本。」。 請參閱 https://go.microsoft.com/fwlink/p/?LinkID=272376 安裝官方提供者。
原因:Oracle 用戶端 SDK 未安裝在執行內部部署資料閘道的電腦上。
解決方案:在與內部部署資料閘道相同的電腦上下載並安裝 Oracle 用戶端 SDK。
錯誤:資料表 '[Tablename]' 未定義任何索引鍵資料行
原因:資料表沒有主索引鍵。
解決方案:Oracle Database 連接器需要您使用具有主索引鍵資料行的資料表。
一般限制
| 名稱 | 價值觀 |
|---|---|
| 連接器每個連線同時處理的要求數目上限 | 200 |
| 每個連線同時透過連接器傳輸的 MB 數目上限 | 30 |
正在建立連線
連接器支援下列驗證類型:
| 預設值 | 建立連線的參數。 | 所有區域 | 可共用 |
預設
適用:所有地區
建立連線的參數。
這是可共享的連接。 如果 Power App 與其他使用者共用,也會共用連線。 如需詳細資訊,請參閱 畫布應用程式的連接器概觀 - Power Apps |Microsoft 文件
| 名稱 | 類型 | Description | 為必填項目 |
|---|---|---|---|
| 伺服器 | 字串 | 指定 Oracle 伺服器。 如果需要埠或 SID,請以 ServerName:Port/SID 的形式指定。 | 對 |
| 驗證類型 [選擇基本] | 字串 | 連線至資料庫的驗證類型 | |
| 用戶名稱 | securestring | 使用者名稱認證 | 對 |
| 密碼 | securestring | 密碼認證 | 對 |
| Gateway | 閘道設定 | 內部部署閘道 (請參閱更多 https://docs.microsoft.com/data-integration/gateway 詳細資料 | 對 |
節流限制
| 名稱 | 呼叫 | 續約期間 |
|---|---|---|
| 每個連線的 API 呼叫 | 1500 | 60 秒 |
動作
| 刪除列 |
此作業會從資料表中刪除資料列。 |
| 取得行 |
此作業會從資料表取得資料列。 |
| 取得表格 |
此作業會從資料庫取得資料表。 |
| 取得資料列 |
此作業會從資料表取得資料列。 |
| 執行 Oracle 查詢 |
執行 Oracle 查詢 |
| 執行預存程序 |
此作業會執行預存程式。 |
| 插入列 |
此作業會在表格中插入新資料列。 |
| 更新資料列 |
此作業會更新資料表中的現有資料列。 |
刪除列
此作業會從資料表中刪除資料列。
參數
| 名稱 | 機碼 | 必要 | 類型 | Description |
|---|---|---|---|---|
|
資料表名稱
|
table | True | string |
表格名稱 |
|
資料列識別碼
|
id | True | string |
要刪除之列的唯一識別碼 |
取得行
此作業會從資料表取得資料列。
參數
| 名稱 | 機碼 | 必要 | 類型 | Description |
|---|---|---|---|---|
|
資料表名稱
|
table | True | string |
Oracle 資料表的名稱 |
|
資料列識別碼
|
id | True | string |
要擷取之資料列的唯一識別碼 |
傳回
取得表格
取得資料列
此作業會從資料表取得資料列。
參數
| 名稱 | 機碼 | 必要 | 類型 | Description |
|---|---|---|---|---|
|
資料表名稱
|
table | True | string |
Oracle 資料表的名稱 |
|
篩選查詢
|
$filter | string |
ODATA 篩選查詢,以限制傳回的專案 (例如 stringColumn eq 'string' OR numberColumn lt 123)。 |
|
|
排序方式
|
$orderby | string |
ODATA orderBy 查詢,用於指定項目順序。 |
|
|
最高計數
|
$top | integer |
要擷取的項目總數 (預設值 = 全部)。 |
|
|
略過計數
|
$skip | integer |
要略過的項目數(預設值 = 0)。 |
|
|
選取查詢
|
$select | string |
要從項目擷取的特定欄位(預設值 = all)。 |
傳回
執行 Oracle 查詢
執行 Oracle 查詢
參數
| 名稱 | 機碼 | 必要 | 類型 | Description |
|---|---|---|---|---|
|
Query
|
query | True | dynamic |
查詢內文 |
傳回
執行預存程序
此作業會執行預存程式。
參數
| 名稱 | 機碼 | 必要 | 類型 | Description |
|---|---|---|---|---|
|
程序名稱
|
procedure | True | string |
預存程序的名稱 |
|
參數清單
|
parameters | True | dynamic |
預存程序的輸入參數 |
傳回
插入列
此作業會在表格中插入新資料列。
參數
| 名稱 | 機碼 | 必要 | 類型 | Description |
|---|---|---|---|---|
|
資料表名稱
|
table | True | string |
表格名稱 |
|
Row
|
item | True | dynamic |
要插入指定表格的列 |
傳回
更新資料列
此作業會更新資料表中的現有資料列。
參數
| 名稱 | 機碼 | 必要 | 類型 | Description |
|---|---|---|---|---|
|
資料表名稱
|
table | True | string |
表格名稱 |
|
資料列識別碼
|
id | True | string |
要更新之列的唯一識別碼 |
|
Row
|
item | True | dynamic |
具有更新值的資料列 |
傳回
定義
Table
代表一個表格。
| 名稱 | 路徑 | 類型 | Description |
|---|---|---|---|
|
名稱
|
Name | string |
數據表的名稱。 該名稱在運行時使用。 |
|
顯示名稱
|
DisplayName | string |
資料表的顯示名稱。 |
|
動態屬性
|
DynamicProperties | object |
連接器提供給用戶端的其他資料表屬性。 |
表格清單
代表表格清單。
| 名稱 | 路徑 | 類型 | Description |
|---|---|---|---|
|
value
|
value | array of Table |
表格列表 |