函式和程序的訊息結構描述
Microsoft BizTalk Adapter for Oracle Database 會以作業的形式呈現 Oracle 資料庫函式和預存程式。 本節描述用來叫用函式和程式的訊息結構和動作。
函式和程式的訊息結構
針對函式和預存程式呈現的作業會遵循要求-回應訊息交換模式。 下表顯示這些要求和回應訊息的結構。
作業 | XML 訊息 | Description |
---|---|---|
預存程式要求 | <[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 Database 配接器藉由將多載字串附加至每個多載成品的目標命名空間,以支援這項功能。 第一個多載的 「overload1」 值為 「overload2」,第二個多載則為 「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 Database 配接器會針對預存程式和函式作業使用下列訊息動作。
訊息 | 動作 | 範例 |
---|---|---|
預存程式要求 | 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]
= 多載參數。 可能的值為多載1、多載2 等等。