Freigeben über


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:

Weitere Informationen

Welche Vorgänge können mit dem Adapter ausgeführt werden?