Condividi tramite


Schemi di messaggio per funzioni e routine

L'adapter Microsoft BizTalk per Oracle Database consente di eseguire le funzioni e le stored procedure del database Oracle come operazioni. Questa sezione descrive la struttura e le azioni dei messaggi usate per richiamare funzioni e procedure.

Struttura dei messaggi di funzioni e procedure

Le operazioni vengono eseguite per le funzioni e le stored procedure seguono un modello di scambio di messaggi di risposta alla richiesta. Nella tabella seguente viene illustrata la struttura di questi messaggi di richiesta e risposta.

Operazione Messaggio XML Descrizione
Richiesta stored procedure <[SP_NAME] xmlns="http://Microsoft.LobServices.OracleDB/2007/03/[SCHEMA]/Procedure"> <[PRM1_NAME]>value1</[PRM1_NAME]> <[PRM2_NAME]>value2</[PRM2_NAME]> … </[SP_NAME]> Supporta i parametri Oracle IN e IN OUT nel corpo del messaggio
Risposta stored procedure <[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> Supporta i parametri Oracle OUT e IN OUT nel corpo del messaggio
Richiesta di funzione <[FN_NAME] xmlns="http://Microsoft.LobServices.OracleDB/2007/03/[SCHEMA]/Function"> <[PRM1_NAME]>value1</[PRM1_NAME]> <[PRM2_NAME]>value2</[PRM2_NAME]> … </[FN_NAME]> Supporta i parametri Oracle IN e IN OUT nel corpo del messaggio
Risposta della funzione <[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> Supporta i parametri Oracle OUT e IN OUT nel corpo del messaggio

- Il valore restituito dalla funzione viene restituito nell'elemento <[FN_NAME]Result\> . Si tratta del primo elemento nel messaggio di risposta. Viene prima di tutti i parametri.
Procedura o richiesta di funzione in pacchetto <[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]> Uguale alla funzione o alla stored procedure
Procedura o risposta funzione in pacchetto <[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> Uguale alla funzione o alla stored procedure

[SCHEMA] = Raccolta di artefatti Oracle; ad esempio SCOTT.

[SP_NAME] = La stored procedure da eseguire; ad esempio, SP_INSERT.

[FN_NAME] = Funzione da eseguire; ad esempio, FN_GETID.

[PRM1_NAME] = Nome del parametro Oracle. Per ogni messaggio, vedere la colonna Description per le direzioni dei parametri supportate.

[PACKAGE_NAME] = Nome del pacchetto contenente la routine o la funzione di destinazione.

Il database Oracle supporta l'overload per stored procedure e funzioni. L'adapter Oracle Database supporta questa funzionalità aggiungendo una stringa di overload allo spazio dei nomi di destinazione per ogni artefatto di overload. Il valore di questa stringa è "overload1" per il primo overload, "overload2" per il secondo overload e così via. Nell'esempio seguente viene illustrata la struttura dei messaggi per due stored procedure di overload.

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]>  

Azioni dei messaggi di funzioni e procedure

L'adapter Oracle Database usa le azioni del messaggio seguenti per le operazioni di stored procedure e funzione.

Messaggio Azione Esempio
Richiesta stored procedure http://Microsoft.LobServices.OracleDB/2007/03/[SCHEMA]/Procedure/[SP_NAME] http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Procedure/SP_INSERT
Risposta stored procedure http://Microsoft.LobServices.OracleDB/2007/03/[SCHEMA]/Procedure/[SP_NAME]/response http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Procedure/SP_INSERT/response
Richiesta di funzione http://Microsoft.LobServices.OracleDB/2007/03/[SCHEMA]/Function/[FN_NAME] http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Function/FN_GETID
Risposta della funzione http://Microsoft.LobServices.OracleDB/2007/03/[SCHEMA]/Function/[FN_NAME]/response http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Function/FN_GETID/response
Richiesta di stored procedure in pacchetto http://Microsoft.LobServices.OracleDB/2007/03/[SCHEMA]/Package/[PACKAGE_NAME]/[SP_NAME] http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Package/CUSTOMER/SP_INSERT
Risposta stored procedure in pacchetto 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
Richiesta di funzione in pacchetto http://Microsoft.LobServices.OracleDB/2007/03/[SCHEMA]/Package/[PACKAGE_NAME]/[FN_NAME] http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Package/CUSTOMER/FN_GETID
Risposta della funzione in pacchetto 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
Richiesta di stored procedure di overload http://Microsoft.LobServices.OracleDB/2007/03/[SCHEMA]/Procedure/[SP_NAME]/[OVERLOAD] http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Procedure/SP_INSERT/overload1
Risposta stored procedure di overload 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] = Raccolta di artefatti Oracle; ad esempio SCOTT.

[SP_NAME] = La stored procedure da eseguire; ad esempio, SP_INSERT.

[FN_NAME] = Funzione da eseguire; ad esempio, FN_GETID.

[PACKAGE_NAME] = Nome del pacchetto contenente la routine o la funzione di destinazione.

[OVERLOAD] = Parametro overload. I valori possibili sono overload1, overload2 e così via.

Vedere anche

Messaggi e schemi di messaggio per l'adapter BizTalk per database Oracle