StatementBatch: Direktes SQL im Batch-Modus
Input
Der JDBC Connector führt mehrere SQL-Anweisungen auf einmal im Batch-Modus aus, wenn sie in folgender Input-XML-Struktur abgelegt werden. Dabei sind lediglich SQL-Anweisungen möglich, die kein ResultSet zurückliefern, also z. B. keine Abfragen mit SELECT
:
<Beliebiger Elementname>
<statementbatch resulttag="Ergebniselementname" timezone="Zeitzone"
format="Datumsformat">
<sql>
SQL-Anweisung 1
</sql>
<sql>
SQL-Anweisung n
</sql>
</statementbatch>
</Beliebiger Elementname>
Für jedes Element <statementbatch/>
gilt:
Das optionale Attribut
timezone
gibt eine Zeitzone gemäßjava.util.TimeZone
, siehe http://docs.oracle.com/javase/1.5.0/docs/api/java/util/TimeZone.html, an, z. B.GMT+2
.Das optionale Attribut
format
gibt ein Datumsformat gemäßjava.text.SimpleDateFormat
an.Es enthält mindestens ein Element
<sql/>
, das jeweils eine SQL-Anweisung enthält.
Falls Sie innerhalb der SQL-Anweisung oder für die Werte bzw. Daten der Tabellenspalten Zeichen verwenden, die in XML eine Bedeutung besitzen, maskieren Sie die SQL-Anweisung mit einem umgebenden CDATA -Block, z. B. <![CDATA[ UPDATE PROCESS SET X4_VERSION=4 WHERE X4_DURATION=100 ]]>
oder <rowset><row><Name><!CDATA[ XML Zeichen “<“ in CDATA Element]]></Name></row></rowset>
.
So wird sichergestellt, dass die Zeichen im CDATA-Element nicht als XML interpretiert werden, sondern als Daten für den Adapter.
Beispiel
<select>
<statementbatch resulttag="Ergebniselementname" timezone="UTC" format="dd.MM.yyyy">
<sql>
<![UPDATE PROCESS SET X4_VERSION=4 WHERE X4_DURATION=100]]>
</sql>
<sql>
<![UPDATE PROCESS SET X4_VERSION=4 WHERE X4_DURATION=200]]>
</sql>
</statementbatch>
</select>
Output
Wurde die Batch-Anweisung erfolgreich ausgeführt, gibt der Datenbankverbindungs-Baustein folgende XML-Struktur zurück:
<Data>
<Ergebniselementname>
<!--Status der Batch-Operation-->
</Ergebniselementname>
</Data>
Als Status der Batch-Operation sind folgende Ausgaben möglich:
(Anzahl der Zeilen) rows affected.
oderSUCCESS_NO_INFO
oderEXECUTE_FAILED