从 Azure 逻辑应用 中的工作流连接到 Oracle 数据库

适用范围:Azure 逻辑应用(消耗型 + 标准型)

当工作流需要使用 Oracle 数据时,请在 Azure 逻辑应用 中使用 Oracle Database 连接器连接到 Oracle 数据库。 可以访问本地或Azure虚拟机上托管的数据库。

Oracle 数据库连接器可帮助你解决常见的数据集成任务,例如:

  • 将客户记录添加到数据库。
  • 更新数据库中的订单记录。
  • 在工作流中获取、插入或删除表行。

支持的 Oracle 数据库版本

下表列出了每个连接器支持的 Oracle DB 版本:

Connector 逻辑应用程序 支持的 Oracle DB 版本
管理 -消费
-标准
- Oracle 9 及更高版本
- Oracle 数据访问客户端 (ODAC) 11.2 及更高版本
内置(预览版) 标准 Oracle 数据库 11 及更高版本

连接器技术参考

Oracle 数据库连接器具有不同的版本,具体取决于 逻辑应用工作流类型和主机环境

逻辑应用程序 环境 连接器版本
消费 多租户 Azure 逻辑应用 托管连接器,显示在“共享”筛选器下的连接器库中

有关详细信息,请参阅 Oracle 数据库托管连接器参考
标准 单租户Azure 逻辑应用、应用服务环境 v3(仅限Windows计划)和混合 托管连接器,该连接器显示在 “共享 筛选器”下的连接器库和内置连接器(公共预览版),该连接器显示在 内置 筛选器下的连接器库中。

内置版本依托 Azure 逻辑应用 运行时,在进程内运行,不需要本地数据网关,因为运行时可以通过网络访问 Oracle 终结点。

有关详细信息,请参阅:

- Oracle 数据库管理连接器参考
- 内置连接器参考

内置连接器操作(预览版)

内置连接器当前支持以下操作:

名字 参数 Description 退货
执行查询executeQuery - 查询query):需要string类型。 要运行的 SQL 查询。

- 查询参数(类型 queryParameters):可选。 要包括的查询参数。
运行 SQL 查询。 SQL 查询结果为 array.
执行存储过程executeStoredProcedure - 存储过程名称storedProcedure):需要指定string类型。 要运行的存储过程的名称。

- 存储过程参数storedProcedureParameters):可选,object 类型。 要包括的存储过程参数。
运行存储过程并返回结果集和输出参数。 - 结果集resultSets)类型为string 。 存储过程返回的结果集列表。

- 具有类型的outputParmatersstring)。 存储过程返回的输出参数值。
获取行getRows - 表名称tableName):需要使用类型 string。 源表的名称。

- Where conditioncolumnValuesForWhereCondition):类型为object 的可选项。 标识要获取的行的列的键值对。

- 获取行的偏移量skipCount):类型为 string 时可选。 要跳过的条目数。 默认值为 0。

- 最大行数maxcount):该功能可选,适用于string类型。 要获取的最大行数。 默认值为 0。

- 排序列orderBy):可选,适用于 string 类型。 用于对查询结果进行排序的列名。

- 选择列filterBy):string 类型为可选。 要从表或视图中获取的列值。
根据指定的条件获取一行或多行数据。 提取的行作为array形式。
获取表getTables 仅返回当前用户拥有的表ownedTables):类型 string 为可选。 仅返回所有者为指定用户的表。 获取表的列表。 表格列表为 array
插入行insertRow - 表名称tableName):需要使用类型 string。 表的名称。

- 设置列setColumns):对于 object 类型可选。 行字段的值。
插入行。 插入的行类型为 object

先决条件

托管的连接器先决条件(消费型和标准型)

  • 下载并安装本地数据网关

    此网关的作用好似一架桥,提供本地数据与应用或客户端之间的安全数据传输。 可对多个服务和数据源使用相同的网关安装过程,这意味着网关可能只需要安装一次。

  • 将 Oracle 客户端与本地数据网关安装在同一计算机上。 否则,在尝试创建或使用连接时将会发生错误。

  • 为网关安装创建 Azure 网关资源

内置连接器先决条件(标准、预览版)

  • 确保标准逻辑应用工作流可以访问 Oracle 终结点,包括任何主机、端口、DNS 解析和防火墙规则。

  • 创建 Oracle 数据库连接时,需要以下值:

    • Oracle 数据库服务器 IP 地址
    • 用户名
    • 密码

    对于服务器 IP 地址,请使用以下格式指定此值:

    格式 Syntax Example
    简易连接 (非 SSL) < host>:<port>/<database-service-name> localhost:1522/XE
    透明网络基底(TNS)描述符(SSL):完整的 Oracle 数据源描述符 (description=(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)))
  • 对于此示例中使用的“获取行”操作,需要知道要访问的表的标识符

    如果你不知道此信息,请联系 Oracle Database 管理员,或通过以下语句获取输出:select * from <table-name>

已知问题和限制

当前连接器版本不支持触发器。 使用适合方案的任何触发器启动工作流,然后添加 Oracle 操作。

Connector Limitations
管理 - 具有复合键的表
- 具有嵌套对象类型的表
- 具有非标值的数据库函数
内置 - 无专用更新或删除操作。 对于更新和删除方案,请使用 执行查询执行存储过程 操作。
- 某些连接问题可能仅在工作流运行时出现,而不是在创建连接时出现。

添加操作

添加和使用 Oracle 操作的步骤因是使用内置连接器还是托管连接器而异。

添加内置连接器操作(标准、预览版)

  1. Azure portal 中,打开标准逻辑应用资源。

  2. 在设计器中,打开工作流。

  3. 按照 常规步骤 将所需的 Oracle 数据库 操作添加到工作流。

    此示例继续执行 “获取行 ”操作。

  4. 在“连接信息”窗格中,输入所需的信息,例如所需的连接名称、Oracle 数据库服务器 IP 地址、用户名和密码,例如:

    截图显示了 Azure 门户、标准工作流设计器以及用于“获取行”操作的 Oracle 数据库连接窗格。

  5. 完成后,选择“新建”

  6. 在操作信息窗格中,输入所选操作所需的参数值。

    例如,如果选择 “获取行 ”操作,请输入表名称:

    屏幕截图显示 Azure 门户、标准工作流设计器和“获取行”操作,其中包含一个示例表名称。

  7. 添加完成工作流所需的任何其他操作。

  8. 保存工作流。 在设计器工具栏上选择“保存”。

添加一种托管连接器操作(消费型和标准型)

  1. Azure 门户中,打开消耗或标准逻辑应用资源。

  2. 在设计器中,打开工作流。

  3. 按照 常规步骤 将所需的 Oracle 数据库 操作添加到工作流。

    此示例继续执行“获取行”操作

  4. 在“连接信息”窗格中,输入所需的 连接信息

  5. 对于网关属性,请选择要使用的 Azure 订阅和 Azure 网关资源。

  6. 完成连接后,从 “表名” 列表中选择一个表。

  7. 对于行 ID属性,输入您希望在表中使用的行 ID。

    在以下示例中,从“人力资源”数据库返回了作业数据:

    截图显示 Azure 门户、工作流设计器以及包含表名称和行 ID 的获取行操作。

  8. 添加完成工作流所需的任何其他操作。

  9. 保存工作流。 在设计器工具栏上选择“保存”。

排查 Oracle 数据库连接问题

错误:无法访问网关

原因:本地数据网关无法连接到云。

缓解措施:请确保您的网关在您安装它的本地计算机上运行,并且具有互联网连接。 避免将网关安装在可能会关闭或进入睡眠状态的计算机上。 还可以尝试重新启动本地数据网关服务 (PBIEgwService)。

错误:要使用的提供程序已弃用:“System.Data.OracleClient 需要 Oracle 客户端软件 8.1.7 或更高版本”。 若要安装正式的提供程序,请参阅 https://go.microsoft.com/fwlink/p/?LinkID=272376

原因:Oracle 客户端 SDK 未与正在运行的本地数据网关安装在同一计算机上。

解决方法:下载 Oracle 客户端 SDK 并将其与本地数据网关安装在同一计算机上。

错误:表“[表名]”未定义任何键列

原因:表没有主键。

解决方案:Oracle Database 连接器要求使用包含主键列的表。