Nachrichtenschemas für den Vorgang SQLEXECUTE
Der Microsoft BizTalk-Adapter für Oracle-Datenbank enthält stark typisierte Metadaten für Artefakte, die im LOB-System vorhanden sind, und macht Standardvorgänge für diese Artefakte verfügbar. Es gibt jedoch Szenarien, in denen eine Anwendung möglicherweise die Ausführung einer beliebigen SQL-Anweisung erfordert, die von der Geschäftslogik in der Anwendung gesteuert wird. Sie möchten beispielsweise Folgendes durchführen:
Führen Sie einen Vorgang für Datenbankartefakte aus, die nicht vom Oracle Database-Adapter angezeigt werden. Rufen Sie beispielsweise curval oder NEXTVAL einer Oracle SEQUENCE ab.
Ausführen von Data Definition Language-Vorgängen; Erstellen Sie beispielsweise eine Tabelle.
Führen Sie Vorgänge für ein Datenbankartefakt aus, das zur Entwurfszeit nicht vorhanden war; Aktualisieren Sie beispielsweise Datensätze in einer temporären Tabelle, die von Ihrer Geschäftslogik erstellt wird.
Führen Sie komplexere DML-Vorgänge für Tabellen aus als die Vorgänge, die vom Oracle Database-Adapter angezeigt werden; Führen Sie beispielsweise eine Abfrage aus, die eine JOIN-Klausel enthält.
Der Oracle Database-Adapter zeigt einen speziellen Vorgang namens SQLEXECUTE-Vorgang an, um solche Szenarien zu unterstützen. Mit diesem Vorgang können Sie eine beliebige SQL-Anweisung für den Oracle Database-Adapter angeben, der in der Oracle-Datenbank ausgeführt werden soll. Sie können auch mehrere Blöcke von Eingabeparametern für die SQL-Anweisung angeben. Der Oracle Database-Adapter führt die SQL-Anweisung einmal für jeden Satz von Parametern aus und gibt jede Ausgabe als generischen (schwach typisierten) Datensatzsatz zurück.
Hinweis
Sie können IN- und IN OUT-Parameter an Prozeduren, Funktionen und Pakete im SQLEXECUTE-Vorgang übergeben. Das aufgerufene Artefakt wird mit den angegebenen Parametern in der Oracle-Datenbank ausgeführt. Der SQLEXECUTE-Vorgang gibt jedoch nicht den Wert der Parameter OUT und IN OUT an den Client zurück. Wenn Sie Prozeduren, Funktionen oder Pakete aufrufen möchten, empfiehlt Microsoft, dies zu tun, indem Sie die dedizierten Vorgänge aufrufen, die der Oracle Database-Adapter für diese Oracle-Artefakte verfügbar macht.
Der folgende XML-Code zeigt die Struktur des SQLEXECUTE-Vorgangs:
<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] = Die auszuführende SQL-Anweisung; Beispiel: "SELECT * from emp WHERE empno=:emp_no".
[PARAM_SPEC] = Die Liste der IN-Parameter in der SQL-Anweisung und deren Datentypen; Beispiel: "emp_no ZAHL".
[PARAM_VAL_1] = Der Wert des ersten Parameters.
Jeder <PARAMETERDATA-Abschnitt> enthält einen vollständigen Satz von <PARAMETER-Elementen> , die dem Schema im <Abschnitt PARAMETERSCHEMA> entsprechen. Das <PARAMETERSET> kann mehrere <PARAMETERDATA-Abschnitte> enthalten. Wenn dies der Fall ist, wird die SQL-Anweisung mehrmals ausgeführt, einmal für jeden Parametersatz.
Weitere Informationen
Nachrichten und Nachrichtenschemas für BizTalk Adapter für Oracle Database