存储过程、函数和 PL/SQL API 的消息架构
适用于 Oracle 电子商务套件的 Microsoft BizTalk 适配器将基础 Oracle 数据库存储过程、函数和 PL/SQL API (包中的存储过程和函数) 作为操作。 本部分介绍用于调用存储过程、函数和 PL/SQL API 的消息结构和操作。
存储过程、函数和 PL/SQL API 的消息结构
函数和存储过程显示的操作遵循请求-响应消息交换模式。 下表显示了这些请求和响应消息的结构。
注意
请参阅表后面的实体说明。
操作 | XML 消息 | 说明 |
---|---|---|
存储过程请求 | <[SP_NAME] xmlns="[VERSION]/Procedures/[SCHEMA]"> <[PRM1_NAME]>value1</[PRM1_NAME]> <[PRM2_NAME]>value2</[PRM2_NAME]> … </[SP_NAME]> |
支持消息正文中的 Oracle IN 和 IN OUT 参数 |
存储过程响应 | <[SP_NAME]Response xmlns="[VERSION]/Procedures/[SCHEMA]"> <[PRM1_NAME]>value1<[PRM1_NAME]> <[PRM2_NAME]>value2</[PRM2_NAME]> … </[SP_NAME]Response> |
支持消息正文中的 Oracle OUT 和 IN OUT 参数 |
函数请求 | <[FN_NAME] xmlns="[VERSION]/Functions/[SCHEMA] "> <[PRM1_NAME]>value1</[PRM1_NAME]> <[PRM2_NAME]>value2</[PRM2_NAME]> … </[FN_NAME]> |
支持消息正文中的 Oracle IN 和 IN OUT 参数 |
函数响应 | <[FN_NAME]Response xmlns="[VERSION]/Functions/[SCHEMA]"> <[FN_NAME]Result>return_value</[FN_NAME]Result> <[PRM1_NAME]>value1</[PRM1_NAME]> <[PRM2_NAME]>value2</[PRM2_NAME]> … </[FN_NAME]Response> |
支持消息正文中的 Oracle OUT 和 IN OUT 参数 函数返回值在 [FN_NAME]Result> 元素中<返回。 这是响应消息中的第一个元素。 它在任何参数之前。 |
PL/SQL API 请求 | <[SP_NAME] xmlns="[VERSION]/PackageApis/[SCHEMA]/[PACKAGE_NAME/[SP_NAME]"> <[PRM1_NAME]>value1</[PRM1_NAME]> <[PRM2_NAME]>value2</[PRM2_NAME]> … </[SP_NAME]> |
与函数或存储过程相同 |
打包的过程或函数响应 | <[SP_NAME]Response xmlns="[VERSION]/PackageApis/[SCHEMA]/[PACKAGE_NAME]/[SP_NAME]"> <[PRM1_NAME]>value1</[PRM1_NAME]> <[PRM2_NAME]>value2</[PRM2_NAME]> … </[SP_NAME]Response> |
与函数或存储过程相同 |
实体说明:
[VERSION] = http://schemas.microsoft.com/OracleEBS/2008/05
。
[SCHEMA] = Oracle 项目的集合;例如 SCOTT。
[SP_NAME] = 要执行的存储过程;例如,SP_INSERT。
[FN_NAME] = 要执行的函数;例如,FN_GETID。
[PRM1_NAME] = Oracle 参数的名称。 有关每条消息支持的参数方向,请参阅“说明”列。
[PACKAGE_NAME] = 包含目标过程或函数的包的名称。
Oracle 数据库支持对存储过程和函数进行重载。 Oracle E-Business 适配器通过将重载字符串追加到每个重载项目的目标命名空间来支持此功能。 对于第一个重载,此字符串的值为“overload1”,对于第二个重载为“overload2”,依此类而行。 以下示例演示两个重载存储过程的消息结构。
Stored Procedure Overload 1:
<[SP_NAME] xmlns="[VERSION]/PackageApis/[SCHEMA]/[PACKAGE_NAME]/[SP_NAME]/overload1">
<[PRM1_NAME]>value1</[PRM1_NAME]>
<[PRM2_NAME]>value1</[PRM2_NAME]>
…
</[SP_NAME]>
Stored Procedure Overload 2:
<[SP_NAME] xmlns="[VERSION]/PackageApis/[SCHEMA]/[PACKAGE_NAME]/[SP_NAME]/overload2">
<[PRM1_NAME]>value1</I_[PRM1_NAME]>
<[PRM2_NAME]>value1</I_[PRM2_NAME]>
…
</[SP_NAME]>
存储过程、函数和 PL/SQL API 的消息操作
Oracle E-Business 适配器对存储过程、函数和 PL/SQL API 操作使用以下消息操作。
注意
请参阅表后面的实体说明。
消息 | 操作 | 示例 |
---|---|---|
存储过程请求 | Procedures/[SCHEMA]/[SP_NAME] | Procedures/SCOTT/SP_INSERT |
存储过程响应 | Procedures/[SCHEMA]/[SP_NAME]/response | Procedures/SCOTT/SP_INSERT/response |
函数请求 | Functions/[SCHEMA]/[FN_NAME] | Functions/SCOTT/FN_GETID |
函数响应 | Functions/[SCHEMA]/[FN_NAME]/response | Functions/SCOTT/FN_GETID/response |
PL/SQL API 请求 | [SCHEMA]/Package/[PACKAGE_NAME]/[SP_NAME] | SCOTT/Package/CUSTOMER/SP_INSERT |
打包存储过程响应 | [SCHEMA]/Package/[PACKAGE_NAME]/[SP_NAME]/response | SCOTT/Package/CUSTOMER/SP_INSERT/response |
打包的函数请求 | [SCHEMA]/Package/[PACKAGE_NAME]/[FN_NAME] | SCOTT/Package/CUSTOMER/FN_GETID |
打包函数响应 | [SCHEMA]/Package/[PACKAGE_NAME]/[FN_NAME]/response | SCOTT/Package/CUSTOMER/FN_GETID/response |
重载存储过程请求 | [SCHEMA]/Procedure/[SP_NAME]/[OVERLOAD] | SCOTT/Procedure/SP_INSERT/overload1 |
重载存储过程响应 | [SCHEMA]/Procedure/[SP_NAME]/[OVERLOAD]/response | SCOTT/Procedure/SP_INSERT/overload1/response |
实体说明:
[SCHEMA] = Oracle 项目的集合;例如 SCOTT。
[SP_NAME] = 要执行的存储过程;例如,SP_INSERT。
[FN_NAME] = 要执行的函数;例如,FN_GETID。
[PACKAGE_NAME] = 包含目标过程或函数的包的名称。
[OVERLOAD] = 重载参数。 可能的值为 overload1、overload2 等。