适用范围: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 。 存储过程返回的结果集列表。 - 具有类型的 outputParmaters (string)。 存储过程返回的输出参数值。 |
获取行 (getRows) |
-
表名称 (tableName):需要使用类型 string。 源表的名称。 - Where condition ( columnValuesForWhereCondition):类型为object 的可选项。 标识要获取的行的列的键值对。 - 获取行的偏移量 ( skipCount):类型为 string 时可选。 要跳过的条目数。 默认值为 0。 - 最大行数( maxcount):该功能可选,适用于string类型。 要获取的最大行数。 默认值为 0。 - 排序列( orderBy):可选,适用于 string 类型。 用于对查询结果进行排序的列名。 - 选择列( filterBy):string 类型为可选。 要从表或视图中获取的列值。 |
根据指定的条件获取一行或多行数据。 | 提取的行作为array形式。 |
获取表 (getTables) |
仅返回当前用户拥有的表 (ownedTables):类型 string 为可选。 仅返回所有者为指定用户的表。 |
获取表的列表。 | 表格列表为 array。 |
插入行 (insertRow) |
-
表名称 (tableName):需要使用类型 string。 表的名称。 - 设置列 ( setColumns):对于 object 类型可选。 行字段的值。 |
插入行。 | 插入的行类型为 object。 |
先决条件
一个 Azure 帐户和订阅。 获取试用Azure帐户。
从何处连接到 Oracle 数据库的逻辑应用资源和工作流。
此连接器仅提供操作,而不提供触发器。 可以使用希望启动工作流的任何触发器。 若要创建逻辑应用资源和工作流,然后添加触发器,请参阅:
- 在 Azure 逻辑应用 中创建消耗逻辑应用工作流。
- 创建标准逻辑应用工作流Azure逻辑应用
- 向工作流添加触发器
托管的连接器先决条件(消费型和标准型)
-
此网关的作用好似一架桥,提供本地数据与应用或客户端之间的安全数据传输。 可对多个服务和数据源使用相同的网关安装过程,这意味着网关可能只需要安装一次。
将 Oracle 客户端与本地数据网关安装在同一计算机上。 否则,在尝试创建或使用连接时将会发生错误。
内置连接器先决条件(标准、预览版)
确保标准逻辑应用工作流可以访问 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 操作的步骤因是使用内置连接器还是托管连接器而异。
添加内置连接器操作(标准、预览版)
在 Azure portal 中,打开标准逻辑应用资源。
在设计器中,打开工作流。
按照 常规步骤 将所需的 Oracle 数据库 操作添加到工作流。
此示例继续执行 “获取行 ”操作。
在“连接信息”窗格中,输入所需的信息,例如所需的连接名称、Oracle 数据库服务器 IP 地址、用户名和密码,例如:
完成后,选择“新建”。
在操作信息窗格中,输入所选操作所需的参数值。
例如,如果选择 “获取行 ”操作,请输入表名称:
屏幕截图显示 Azure 门户、标准工作流设计器和“获取行”操作,其中包含一个示例表名称。 添加完成工作流所需的任何其他操作。
保存工作流。 在设计器工具栏上选择“保存”。
添加一种托管连接器操作(消费型和标准型)
在 Azure 门户中,打开消耗或标准逻辑应用资源。
在设计器中,打开工作流。
按照 常规步骤 将所需的 Oracle 数据库 操作添加到工作流。
此示例继续执行“获取行”操作。
在“连接信息”窗格中,输入所需的 连接信息。
对于网关属性,请选择要使用的 Azure 订阅和 Azure 网关资源。
完成连接后,从 “表名” 列表中选择一个表。
对于行 ID属性,输入您希望在表中使用的行 ID。
在以下示例中,从“人力资源”数据库返回了作业数据:
添加完成工作流所需的任何其他操作。
保存工作流。 在设计器工具栏上选择“保存”。
排查 Oracle 数据库连接问题
错误:无法访问网关
原因:本地数据网关无法连接到云。
缓解措施:请确保您的网关在您安装它的本地计算机上运行,并且具有互联网连接。 避免将网关安装在可能会关闭或进入睡眠状态的计算机上。 还可以尝试重新启动本地数据网关服务 (PBIEgwService)。
错误:要使用的提供程序已弃用:“System.Data.OracleClient 需要 Oracle 客户端软件 8.1.7 或更高版本”。 若要安装正式的提供程序,请参阅 https://go.microsoft.com/fwlink/p/?LinkID=272376。
原因:Oracle 客户端 SDK 未与正在运行的本地数据网关安装在同一计算机上。
解决方法:下载 Oracle 客户端 SDK 并将其与本地数据网关安装在同一计算机上。
错误:表“[表名]”未定义任何键列
原因:表没有主键。
解决方案:Oracle Database 连接器要求使用包含主键列的表。