Skip to main content
Skip table of contents

CallableStatementBatch: Stored Procedures im Batch-Modus

Der JDBC Connector führt Stored Procedures über JDBC Callablestatements mit dynamischen Input-Daten 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.

Input

HTML/XML
<Beliebiger Elementname>
   <callablestatementbatch resulttag="Ergebniselementname" timezone="Zeitzone" 
    format="Datumsformat">
      <sql>  
        <!--SQL-Anweisungen -->
      </sql>
      <columns>
         <column mode="Modus" name="frei wählbarer Name" index="Platzhalter" 
          type="Datentyp" timezone="Zeitzone" format="Datumsformat">
         </column>
      </columns>
      <rowset>
         <row>
            <Name><!--Wert--></Name>
         </row> 
      </rowset> 
   </callablestatementbatch> 
</Beliebiger Elementname>

Für jedes Element <callablestatementbatch/> gilt:

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[ SELECT * FROM TABLE WHERE ID<1 ]]> 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.

Für jedes Element <column/> gilt:

  • Es darf beliebig häufig verwendet werden (0 – n-mal)

  • Das optionale Attribut mode gibt die "Richtung" des Datenstroms an (in: Input-Parameter für die Datenbank; out: Ergebnisparameter aus der Datenbank; inout: sowohl Input-Parameter als auch Ergebnisparameter; siehe http://download.oracle.com/javase/1,5.0/docs/guide/jdbc/getstart/callablestatement.html); Standard: in.

  • Das Attribut name gibt einen frei wählbaren Namen für ein Parameter an.

  • Das Attribut index gibt einen ganzzahligen Platzhalterindex für den in Attribut name definierten Parameter an.

  • Das optionale Attribut type gibt den Datentyp an (zulässige Datentypen siehe Hinweis unten; Standard: VARCHAR).

  • Das Attribut name gibt einen frei wählbaren Namen für ein Parameter an.

  • 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.

Für jedes Element <rowset/> gilt:

  • Es darf beliebig häufig verwendet werden (0 – n-mal).

  • Es enthält beliebig viele Elemente <row/>, die die Statement-Ausführung steuern.

Für jedes Element <row/> gilt:

  • Es darf beliebig viele Elemente enthalten, die den Namen der Tabellenspalte oder den im SQL-Statement gesetzten Spalten-Alias tragen.

  • Die darin liegenden Elemente enthalten die jeweiligen Werte.

Beachten Sie Folgendes

  • Die Attribute mode und format sind in X4 Server Revision 31469 Pflichtparameter; ab neueren Versionen sind diese optional.

  • Zulässige Datentypen für das Attribut type zum Setzen (Input-Parameter) und Lesen (ResultSet) von Werten sind: BIGINT, BINARY, BIT, BOOLEAN, BLOB, CHAR, CLOB, DATE, DECIMAL, DOUBLE, FLOAT, INTEGER, LONGNVARCHAR, LONGVARBINARY, LONGVARCHAR, NCHAR, NCLOB, NULL, NUMERIC, NVARCHAR, REAL, SMALLINT, SQLXML, TIME, TIMESTAMP, TINYINT, VARBINARY und VARCHAR (Standard), XML (alias für SQLXML).

Beispiel

HTML/XML
<Rootelement>
   <callablestatementbatch resulttag="abc" timezone="MEZ"
      format="dd.MM.yyyy">
      <sql>  
      <![CDATA[ {call getData(?)} ]]>
      </sql>
      <columns>
         <column mode="out" name="id" index="1"
            type="INTEGER">
         </column>
      </columns>
      <rowset>
         <row>
            <id>TestUser</id>
         </row>
      </rowset>
   </callablestatementbatch>
   <callablestatementbatch resulttag="abc" timezone="MEZ"
      format="dd.MM.yyyy">
      <sql>  
      <![CDATA[ {call getData(?)} ]]>
      </sql>
      <columns>
         <column mode="out" name="id" index="1"
            type="INTEGER">
         </column>
      </columns>
      <rowset>
         <row>
            <id>TestUser</id>
         </row>
      </rowset>
   </callablestatementbatch>
</Rootelement>

Output

Wurde die Batch-Anweisung erfolgreich ausgeführt, gibt der Datenbankverbindungs-Baustein folgende XML-Struktur zurück:

HTML/XML
<Data>
   <Ergebniselementname>
      <!--Status der Batch-Operation-->
   </Ergebniselementname>
</Data>

Als Status der Batch-Operation sind folgende Ausgaben möglich:

  • (Anzahl der Zeilen) rows affected. oder

  • SUCCESS_NO_INFO oder

  • EXECUTE_FAILED

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.