Einfügen, Aktualisieren, Löschen und Auswählen von Vorgängen in Oracle-Tabellen und -Ansichten
Der Microsoft BizTalk-Adapter für Oracle-Datenbank enthält eine Reihe von Standardvorgängen für jede Oracle-Datenbanktabelle und -sicht. Mit diesen Vorgängen können Sie einfache SQL INSERT-, UPDATE-, SELECT- und DELETE-Anweisungen ausführen, die durch eine WHERE-Klausel für die Zieltabelle (oder -ansicht) qualifiziert sind. Diese Vorgänge werden auch als DML-Vorgänge (Data Manipulation Language) bezeichnet. Um komplexere Vorgänge auszuführen, z. B. eine SQL SELECT-Abfrage, die den JOIN-Operator verwendet, können Sie den SQLEXECUTE-Vorgang verwenden. Weitere Informationen zum SQLEXECUTE-Vorgang finden Sie unter SQLEXECUTE-Vorgang in Oracle-Datenbank.
Die folgende Tabelle zeigt die DML-Vorgänge, die der Oracle Database-Adapter unterstützt:
Vorgang | BESCHREIBUNG |
---|---|
Einfügen | Führt einen Einfügevorgang für die Zieltabelle oder -sicht aus. Der Einfügevorgang unterstützt mehrere Datensatz- oder Masseneinfügungen in die Zieltabelle oder -ansicht: – Bei einem Einfügevorgang mit mehreren Datensätzen werden Zeilen basierend auf einem angegebenen Datensatzsatz in eine Tabelle oder Sicht eingefügt. - Ein Masseneinfügungsvorgang fügt Zeilen basierend auf einer angegebenen SQL SELECT-Abfrage und Spaltenliste in eine Tabelle oder Sicht ein. Die von der Abfrage zurückgegebenen Datensätze werden basierend auf der Spaltenliste in die Zieltabelle eingefügt. Der Rückgabewert für einen Insert-Vorgang ist die Anzahl der eingefügten Zeilen. Hinweis: Sowohl das Einfügen mit mehreren Datensätzen als auch das Masseneinfügung können nicht in derselben Nachricht kombiniert werden. InlineValue Für alle einfachen Datensätze in einem Einfügevorgang mit mehreren Datensätzen können Sie den Wert eines Datensatzes überschreiben, indem Sie einen Wert für ein optionales Attribut namens InlineValue angeben. Das InlineValue-Attribut kann verwendet werden, um berechnete Werte in Tabellen oder Sichten einzufügen, z. B. das Auffüllen der Primärschlüsselspalte mithilfe einer Sequenz oder das Einfügen des Systemdatums (mithilfe von SYSDATE) in eine Datumsspalte. Beispiel: In der folgenden INSERT-Anweisung: <Insert xmlns="http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Table/ACCOUNTACTIVITY"> <RECORDSET> <ACCOUNTACTIVITYRECORDINSERT> <ACCOUNT>10001</ACCOUNT> <EMPNAME>John</EMPNAME> <AMOUNT>1500</AMOUNT> <TRANSDATE InlineValue="SYSDATE">2008-06-21T15:52:19</TRANSDATE> </ACCOUNTACTIVITYRECORDINSERT > </RECORDSET> </Insert> Obwohl "2008-06-21T15:52:19" als Wert für die TRANSDATE-Spalte angegeben wird, wird der Wert des InlineValue-Attributs "SYSDATE" (Systemdatum) in die Zieltabelle eingefügt. Bei Verwendung des InlineValue-Attributs: – Vermeiden Sie die Verwendung konstanter Werte für das InlineValue-Attribut. Wenn Sie beispielsweise in der INSERT-Anweisung angeben <EMPNAME InlineValue="John"/> , führt dies zu einem Fehler. Dies liegt daran, dass der Wert des InlineValue-Attributs unverändert an Oracle übergeben wird, und in diesem Fall John an die Oracle-Datenbank übergeben wird, was nicht der erwartete Wert ist (der erwartete Wert ist "John"). Sie müssten einzelne Anführungszeichen um den Mitarbeiternamen herum verwenden. Beispiel: <EMPNAME InlineValue="’John’"/> .- Wenn Sie eine select-Abfrage für das InlineValue-Attribut verwenden möchten, müssen Sie die SELECT-Anweisung in Klammern einschließen und außerdem sicherstellen, dass die Select-Abfrage nur einen einzelnen Datensatz abruft. Beispiel: <EMPNAME InlineValue="(SELECT NAME FROM MS_SAMPLE_EMPLOYEES WHERE ID=123)"/> .Hinweis: Wenn ein Element in der Oracle-Datenbank als NOT NULL markiert ist, müssen Sie einen Wert für dieses Element angeben, auch wenn Sie einen Inlinewert angegeben haben. Wenn dies nicht der Fall ist, tritt bei der Schemaüberprüfung ein Fehler auf. |
Select | Führt eine SQL SELECT-Abfrage für die Zieltabelle oder -sicht basierend auf einer angegebenen Liste von Spaltennamen und einer Filterzeichenfolge aus, die eine SQL WHERE-Klausel angibt. Der Rückgabewert für einen Select-Vorgang ist ein stark typisiertes Resultset, das die angegebenen Spalten und Zeilen enthält. |
Aktualisieren | Führt einen Updatevorgang für die Zieltabelle oder -ansicht aus. Die zu aktualisierenden Datensätze werden durch eine Filterzeichenfolge angegeben, die eine SQL WHERE-Klausel angibt. Die Werte für das Update werden in einem Vorlagendatensatz angegeben. Der Rückgabewert für einen Update-Vorgang ist die Anzahl der aktualisierten Zeilen. |
Löschen | Führt einen Delete-Vorgang für die Zieltabelle oder -sicht basierend auf einer SQL WHERE-Klausel aus, die in einer Filterzeichenfolge angegeben ist. Der Rückgabewert für einen Delete-Vorgang ist die Anzahl der gelöschten Zeilen. |
Weitere Informationen:
Ausführen dieser Vorgänge mit BizTalk Server finden Sie unter Einfügen, Aktualisieren, Löschen und Auswählen von Vorgängen mithilfe von BizTalk Server.
Ausführen dieser Vorgänge mithilfe des WCF-Dienstmodells finden Sie unter Einfügen, Aktualisieren, Löschen und Auswählen von Vorgängen mithilfe des WCF-Dienstmodells.
Ausführen dieser Vorgänge mithilfe des WCF-Kanalmodells finden Sie unter Ausführen eines Einfügevorgangs in Oracle-Datenbank mithilfe des WCF-Kanalmodells.
Nachrichtenstrukturen und SOAP-Aktion zum Ausführen von DML-Vorgängen finden Sie unter Nachrichtenschemas für die Grundlegenden Vorgänge Einfügen, Aktualisieren, Löschen und Auswählen von Vorgängen für Tabellen und Ansichten.