函数和过程的消息架构
适用于 Oracle 数据库的 Microsoft BizTalk 适配器将 Oracle 数据库函数和存储过程显示为操作。 本节介绍用于调用函数和过程的消息结构和操作。
函数和过程的消息结构
函数和存储过程显示的操作遵循请求-响应消息交换模式。 下表显示了这些请求和响应消息的结构。
操作 | XML 消息 | 说明 |
---|---|---|
存储过程请求 | <[SP_NAME] xmlns="http://Microsoft.LobServices.OracleDB/2007/03/[SCHEMA]/Procedure"> <[PRM1_NAME]>value1</[PRM1_NAME]> <[PRM2_NAME]>value2</[PRM2_NAME]> … </[SP_NAME]> |
支持消息正文中的 Oracle IN 和 IN OUT 参数 |
存储过程响应 | <[SP_NAME]Response xmlns="http://Microsoft.LobServices.OracleDB/2007/03/[SCHEMA]/Procedure"> <[PRM1_NAME]>value1<[PRM1_NAME]> <[PRM2_NAME]>value2</[PRM2_NAME]> … </[SP_NAME]Response> |
支持消息正文中的 Oracle OUT 和 IN OUT 参数 |
函数请求 | <[FN_NAME] xmlns="http://Microsoft.LobServices.OracleDB/2007/03/[SCHEMA]/Function"> <[PRM1_NAME]>value1</[PRM1_NAME]> <[PRM2_NAME]>value2</[PRM2_NAME]> … </[FN_NAME]> |
支持消息正文中的 Oracle IN 和 IN OUT 参数 |
函数响应 | <[FN_NAME]Response xmlns="http://Microsoft.LobServices.OracleDB/2007/03/[SCHEMA]/Function"> <[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\> 返回。 这是响应消息中的第一个元素。 它在任何参数之前。 |
打包的过程或函数请求 | <[SP_NAME] xmlns="http://Microsoft.LobServices.OracleDB/2007/03/[SCHEMA]/Package/[PACKAGE_NAME]"> <[PRM1_NAME]>value1</[PRM1_NAME]> <[PRM2_NAME]>value2</[PRM2_NAME]> … </[SP_NAME]> |
与函数或存储过程相同 |
打包的过程或函数响应 | <[SP_NAME]Response xmlns="http://Microsoft.LobServices.OracleDB/2007/03/[SCHEMA]/Package/[PACKAGE_NAME]"> <[PRM1_NAME]>value1</[PRM1_NAME]> <[PRM2_NAME]>value2</[PRM2_NAME]> … </[SP_NAME]Response> |
与函数或存储过程相同 |
[SCHEMA]
= Oracle 项目的集合;例如 SCOTT。
[SP_NAME]
= 要执行的存储过程;例如,SP_INSERT。
[FN_NAME]
= 要执行的函数;例如,FN_GETID。
[PRM1_NAME]
= Oracle 参数的名称。 有关每条消息支持的参数方向,请参阅“说明”列。
[PACKAGE_NAME]
= 包含目标过程或函数的包的名称。
Oracle 数据库支持对存储过程和函数进行重载。 Oracle 数据库适配器支持此功能,方法是将重载字符串追加到每个重载项目的目标命名空间。 对于第一个重载,此字符串的值为“overload1”,对于第二个重载为“overload2”,依此类而行。 以下示例演示两个重载存储过程的消息结构。
Stored Procedure Overload 1:
<[SP_NAME] xmlns="http://Microsoft.LobServices.OracleDB/2007/03/[SCHEMA]/Package/[PACKAGE_NAME]/[SP_NAME]/overload1">
<[PRM1_NAME]>value1</[PRM1_NAME]>
<[PRM2_NAME]>value1</[PRM2_NAME]>
…
</[SP_NAME]>
Stored Procedure Overload 2:
<[SP_NAME] xmlns="http://Microsoft.LobServices.OracleDB/2007/03/[SCHEMA]/Package/[PACKAGE_NAME]/[SP_NAME]/overload2">
<[PRM1_NAME]>value1</I_[PRM1_NAME]>
<[PRM2_NAME]>value1</I_[PRM2_NAME]>
…
</[SP_NAME]>
函数和过程的消息操作
Oracle 数据库适配器对存储过程和函数操作使用以下消息操作。
消息 | 操作 | 示例 |
---|---|---|
存储过程请求 | http://Microsoft.LobServices.OracleDB/2007/03/[SCHEMA]/Procedure/[SP_NAME] |
http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Procedure/SP_INSERT |
存储过程响应 | http://Microsoft.LobServices.OracleDB/2007/03/[SCHEMA]/Procedure/[SP_NAME]/response |
http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Procedure/SP_INSERT/response |
函数请求 | http://Microsoft.LobServices.OracleDB/2007/03/[SCHEMA]/Function/[FN_NAME] |
http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Function/FN_GETID |
函数响应 | http://Microsoft.LobServices.OracleDB/2007/03/[SCHEMA]/Function/[FN_NAME]/response |
http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Function/FN_GETID/response |
打包存储过程请求 | http://Microsoft.LobServices.OracleDB/2007/03/[SCHEMA]/Package/[PACKAGE_NAME]/[SP_NAME] |
http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Package/CUSTOMER/SP_INSERT |
打包存储过程响应 | http://Microsoft.LobServices.OracleDB/2007/03/[SCHEMA]/Package/[PACKAGE_NAME]/[SP_NAME]/response |
http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Package/CUSTOMER/SP_INSERT/response |
打包的函数请求 | http://Microsoft.LobServices.OracleDB/2007/03/[SCHEMA]/Package/[PACKAGE_NAME]/[FN_NAME] |
http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Package/CUSTOMER/FN_GETID |
打包函数响应 | http://Microsoft.LobServices.OracleDB/2007/03/[SCHEMA]/Package/[PACKAGE_NAME]/[FN_NAME]/response |
http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Package/CUSTOMER/FN_GETID/response |
重载存储过程请求 | http://Microsoft.LobServices.OracleDB/2007/03/[SCHEMA]/Procedure/[SP_NAME]/[OVERLOAD] |
http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Procedure/SP_INSERT/overload1 |
重载存储过程响应 | http://Microsoft.LobServices.OracleDB/2007/03/[SCHEMA]/Procedure/[SP_NAME]/[OVERLOAD]/response |
http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Procedure/SP_INSERT/overload1/response |
[SCHEMA]
= Oracle 项目的集合;例如 SCOTT。
[SP_NAME]
= 要执行的存储过程;例如,SP_INSERT。
[FN_NAME]
= 要执行的函数;例如,FN_GETID。
[PACKAGE_NAME]
= 包含目标过程或函数的包的名称。
[OVERLOAD]
= Overload 参数。 可能的值为 overload1、overload2 等。