Schémas de message pour l’opération SQLEXECUTE
L’adaptateur Microsoft BizTalk pour Oracle Database présente des métadonnées fortement typées pour les artefacts présents dans le système métier et expose les opérations standard sur ces artefacts. Toutefois, il existe des scénarios dans lesquels une application peut nécessiter l’exécution d’une instruction SQL arbitraire pilotée par la logique métier dans l’application. Par exemple, vous pouvez :
Effectuer une opération sur les artefacts de base de données qui ne sont pas exposés par l’adaptateur Oracle Database ; par exemple, obtenez le CURVAL ou NEXTVAL d’une séquence Oracle.
Effectuer des opérations de langage de définition de données ; par exemple, créez une table.
Effectuer des opérations sur un artefact de base de données qui n’était pas présent au moment de la conception ; par exemple, mettez à jour les enregistrements dans une table temporaire créée par votre logique métier.
Effectuer des opérations DML plus complexes sur les tables que les opérations exposées par l’adaptateur Oracle Database ; par exemple, effectuez une requête qui inclut une clause JOIN.
L’adaptateur Oracle Database fait apparaître une opération spéciale appelée opération SQLEXECUTE pour prendre en charge de tels scénarios. À l’aide de cette opération, vous pouvez spécifier une instruction SQL arbitraire pour que l’adaptateur Oracle Database s’exécute sur la base de données Oracle. Vous pouvez également spécifier plusieurs blocs de paramètres d’entrée dans l’instruction SQL. L’adaptateur Oracle Database exécute l’instruction SQL une fois pour chaque jeu de paramètres et retourne n’importe quelle sortie sous la forme d’un jeu d’enregistrements générique (faiblement typé).
Notes
Vous pouvez passer les paramètres IN et IN OUT aux procédures, fonctions et packages dans l’opération SQLEXECUTE. L’artefact appelé s’exécute avec les paramètres fournis sur la base de données Oracle ; toutefois, l’opération SQLEXECUTE ne retourne pas la valeur des paramètres OUT et IN OUT au client. Si vous souhaitez appeler des procédures, des fonctions ou des packages, Microsoft vous recommande de le faire en appelant les opérations dédiées que l’adaptateur Oracle Database expose pour ces artefacts Oracle.
Le code XML suivant montre la structure de l’opération SQLEXECUTE :
<SQLEXECUTE xmlns="SQLEXECUTE">
<SQLSTATEMENT> [STATEMENT] </SQLSTATEMENT>
<PARAMETERSCHEMA>[PARAM_SPEC]</PARAMETERSCHEMA>
<PARAMETERSET>
<PARAMETERDATA>
<PARAMETER xmlns:c="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<c:string>[PARAM_VAL_1]</c:string>
</PARAMETER>
</PARAMETERDATA>
…
</PARAMETERSET>
</SQLEXECUTE>
[STATEMENT] = Instruction SQL à exécuter ; par exemple, « SELECT * from emp WHERE empno= :emp_no ».
[PARAM_SPEC] = liste des paramètres IN de l’instruction SQL et de leurs types de données ; par exemple, « emp_no NUMBER ».
[PARAM_VAL_1] = Valeur du premier paramètre.
Chaque <section PARAMETERDATA> contient un ensemble complet d’éléments <PARAMETER> qui correspondent au schéma de la <section PARAMETERSCHEMA> . L’objet <PARAMETERSET> peut contenir plusieurs <sections PARAMETERDATA> . Si c’est le cas, l’instruction SQL est exécutée plusieurs fois, une fois par rapport à chaque jeu de paramètres.
Voir aussi
Messages et schémas de message pour l’adaptateur BizTalk pour Oracle Database