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 虚拟机。

新动态

下表描述了 Oracle Databaseconnector 的新更新和功能:

Update Description
2018 年 10 月 支持 Oracle 存储过程。
2018 年 1 月 支持 Oracle 视图作为只读表。

先决条件

  • 支持的 Oracle 版本:

    • Oracle 9 及更高版本
    • Oracle 数据访问客户端 (ODAC) 11.2 及更高版本
  • 若要使用已安装 Oracle 数据库的本地 Oracle 数据库或 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

要从条目检索的特定字段(默认值 = 全部)。

返回

此操作输出是动态内容。

获取表

此作从数据库获取表。

返回

表示表的列表。

Body
TablesList

定义

Table

表示表。

名称 路径 类型 说明
Name
Name string

表的名称。 名称在运行时使用。

显示名称
DisplayName string

表的显示名称。

DynamicProperties
DynamicProperties object

连接器提供给客户端的其他表属性。

TablesList

表示表的列表。

名称 路径 类型 说明
value
value array of Table

表列表