Oracle Database
Oracle 数据库是由 Oracle 开发的关系数据库管理系统。 连接到本地 Oracle 数据库以执行各种作,例如在表中的行上创建、更新、获取和删除。
此连接器在以下产品和区域中可用:
| 服务 | Class | 区域 |
|---|---|---|
| Copilot Studio | 高级 | 所有 Power Automate 区域 |
| 逻辑应用程序 | 标准 | 除以下各项外的所有 逻辑应用区域 : - 美国国防部(DoD) |
| Power Apps | 高级 | 所有 Power Apps 区域 |
| Power Automate | 高级 | 所有 Power Automate 区域 |
| 联系人 | |
|---|---|
| Name | Microsoft |
| URL |
Microsoft LogicApps 支持 Microsoft Power Automate 支持 Microsoft Power Apps 支持 |
| 连接器元数据 | |
|---|---|
| 发布者 | Microsoft |
| 网站 | https://www.oracle.com/database/ |
| 隐私策略 | https://www.oracle.com/legal/privacy/ |
本文介绍适用于 Azure 逻辑应用、Microsoft Power Apps 和 Microsoft Power Automate 的 Oracle 数据库连接器的作。 可以使用此连接器连接到本地 Oracle 数据库或安装了 Oracle 数据库的 Azure 虚拟机。
- 若要在 Power Apps 中使用此连接器,请参阅 从 Power Apps 连接到 Oracle 数据库。
新动态
下表描述了 Oracle Databaseconnector 的新更新和功能:
| Update | Description |
|---|---|
| 2018 年 10 月 | 支持 Oracle 存储过程。 |
| 2018 年 1 月 | 支持 Oracle 视图作为只读表。 |
先决条件
支持的 Oracle 版本:
- Oracle 9 及更高版本
- Oracle 数据访问客户端 (ODAC) 11.2 及更高版本
若要使用已安装 Oracle 数据库的本地 Oracle 数据库或 Azure 虚拟机进行连接,必须 安装本地数据网关。
此网关充当网桥,提供本地数据和应用或客户端之间的安全数据传输。 可以将同一网关安装与多个服务和数据源一起使用,这意味着可能只需要安装网关一次。
有关 Microsoft Power Apps,另请参阅 在 Power Apps 中管理本地数据网关。
对于 Azure 逻辑应用,还必须为网关安装创建 Azure 网关资源,然后才能使用连接器。 有关详细信息,请参阅 从逻辑应用连接到本地数据。
在安装了本地数据网关的计算机上安装 Oracle 客户端。 请确保从 Oracle 安装适用于 .NET 的 64 位 Oracle 数据提供程序,并选择 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 秒,则作超时。
插入并更新到表不会返回完整项。 它们仅返回作的输入属性。
若要获取 Get 行 作的确定性分页结果,需要主键。
“插入行”作要求你为主键列提供显式值,即使定义了默认/自动创建值。
由于 UI 组件限制,在设计时呈现的表列表不能显示超过 2,048 个元素,这是 Get 表 作的默认页面大小,例如:
- “获取行”作参数的表列表,名为“表名”。
- Power Apps 设计器中“创建连接/选择表”流的表列表。
如果在处理 Oracle 数据库时观察到延迟,请在网关计算机或每个网关计算机上安装最新的 64 位 Oracle 数据访问组件(ODAC),如果网关是群集。
如果 Oracle 连接创建失败并出现超时,请尝试使用具有最小权限的 Oracle 凭据。 这样,连接就更轻量,这有助于避免在创建连接期间遇到超时。
常见的连接错误
错误:无法访问网关
原因:本地数据网关无法连接到云。
缓解:确保网关在安装了网关且已建立 Internet 连接的本地计算机上运行。 避免在可能已关闭或进入睡眠状态的计算机上安装网关。 还可以尝试重启本地数据网关服务(PBIEgwService)。
错误:正在使用的提供程序已弃用:“System.Data.OracleClient 需要 Oracle 客户端软件版本 8.1.7 或更高版本。 请参阅 https://go.microsoft.com/fwlink/p/?LinkID=272376 安装官方提供程序。
原因:未在运行本地数据网关的计算机上安装 Oracle 客户端 SDK。
解决方法:将 Oracle 客户端 SDK 下载并安装到与本地数据网关相同的计算机上。
错误:表“[Tablename]”未定义任何键列
原因:表没有主键。
解决方法:Oracle 数据库连接器要求使用具有主键列的表。
常规限制
| Name | 价值 |
|---|---|
| 每个连接并发处理连接器的请求数上限 | 200 |
| 每个连接并发通过连接器传输的最大兆字节数 | 30 |
正在创建连接
连接器支持以下身份验证类型:
| 默认 | 用于创建连接的参数。 | 所有区域 | 可共享 |
违约
适用:所有区域
用于创建连接的参数。
这是可共享的连接。 如果 Power App 与其他用户共享,则连接也会共享。 有关详细信息,请参阅 画布应用的连接器概述 - Power Apps |Microsoft Docs
| Name | 类型 | Description | 必选 |
|---|---|---|---|
| Server | 字符串 | 指定 Oracle 服务器。 如果需要端口或 SID,请以 ServerName:Port/SID 的形式指定。 | True |
| 身份验证类型 [选择基本] | 字符串 | 用于连接到数据库的身份验证类型 | |
| 用户名 | securestring | 用户名凭据 | True |
| 密码 | securestring | 密码凭据 | True |
| Gateway | gatewaySetting | 本地网关(请参阅 https://docs.microsoft.com/data-integration/gateway 更多详细信息) | True |
限制
| 名称 | 调用 | 续订期 |
|---|---|---|
| 每个连接的 API 调用数 | 1500 | 60 秒 |
操作
| 删除行 |
此作从表中删除行。 |
| 执行 Oracle 查询 |
执行 Oracle 查询 |
| 执行存储过程 |
此作运行存储过程。 |
| 插入行 |
此作将新行插入表中。 |
| 更新行 |
此作更新表中的现有行。 |
| 获取行 |
此作从表中获取一行。 |
| 获取行 |
此作从表中获取行。 |
| 获取表 |
此作从数据库获取表。 |
删除行
此作从表中删除行。
参数
| 名称 | 密钥 | 必需 | 类型 | 说明 |
|---|---|---|---|---|
|
表名称
|
table | True | string |
表的名称 |
|
行 ID
|
id | True | string |
要删除的行的唯一标识符 |
执行 Oracle 查询
执行 Oracle 查询
参数
| 名称 | 密钥 | 必需 | 类型 | 说明 |
|---|---|---|---|---|
|
Query
|
query | True | dynamic |
查询正文 |
返回
执行存储过程
此作运行存储过程。
参数
| 名称 | 密钥 | 必需 | 类型 | 说明 |
|---|---|---|---|---|
|
过程名称
|
procedure | True | string |
存储过程的名称 |
|
参数列表
|
parameters | True | dynamic |
存储过程的输入参数 |
返回
插入行
此作将新行插入表中。
参数
| 名称 | 密钥 | 必需 | 类型 | 说明 |
|---|---|---|---|---|
|
表名称
|
table | True | string |
表的名称 |
|
行
|
item | True | dynamic |
要插入到指定表中的行 |
返回
更新行
此作更新表中的现有行。
参数
| 名称 | 密钥 | 必需 | 类型 | 说明 |
|---|---|---|---|---|
|
表名称
|
table | True | string |
表的名称 |
|
行 ID
|
id | True | string |
要更新的行的唯一标识符 |
|
行
|
item | True | dynamic |
具有更新值的行 |
返回
获取行
此作从表中获取一行。
参数
| 名称 | 密钥 | 必需 | 类型 | 说明 |
|---|---|---|---|---|
|
表名称
|
table | True | string |
Oracle 表的名称 |
|
行 ID
|
id | True | string |
要检索的行的唯一标识符 |
返回
获取行
此作从表中获取行。
参数
| 名称 | 密钥 | 必需 | 类型 | 说明 |
|---|---|---|---|---|
|
表名称
|
table | True | string |
Oracle 表的名称 |
|
筛选查询
|
$filter | string |
ODATA 筛选器查询,用于限制返回的条目(例如 stringColumn eq 'string' OR numberColumn lt 123)。 |
|
|
订单依据
|
$orderby | string |
用于指定条目顺序的 ODATA orderBy 查询。 |
|
|
Top Count
|
$top | integer |
要检索的条目总数(默认值 = 全部)。 |
|
|
跳过计数
|
$skip | integer |
要跳过的条目数(默认值 = 0)。 |
|
|
选择“查询”
|
$select | string |
要从条目检索的特定字段(默认值 = 全部)。 |
返回
获取表
定义
Table
表示表。
| 名称 | 路径 | 类型 | 说明 |
|---|---|---|---|
|
Name
|
Name | string |
表的名称。 名称在运行时使用。 |
|
显示名称
|
DisplayName | string |
表的显示名称。 |
|
DynamicProperties
|
DynamicProperties | object |
连接器提供给客户端的其他表属性。 |
TablesList
表示表的列表。
| 名称 | 路径 | 类型 | 说明 |
|---|---|---|---|
|
value
|
value | array of Table |
表列表 |