Skip to main content
Skip table of contents

NamedPreparedStatement: SQL mit benannten Parametern

Der JDBC Iterator führt SQL-Anweisungen mit benannten Parametern aus, wenn sie in folgender Input-XML-Struktur abgelegt werden.

Input

HTML/XML
<Beliebiger Elementname>
   <namedpreparedstatement resulttag="Ergebniselementname" timezone="Zeitzone" 
    format="Datumsformat">
      <sql>  
         <!--SQL-Anweisungen (optional innerhalb eines CDATA-Blocks) -->
         <!--Je Parameter ein XML-Element, gleichnamig zum entsprechenden Kindelement in <row> -->
      </sql>
      <rowset>
         <row>
            <Name><!--Wert--></Name>
         </row> 
      </rowset> 
   </namedpreparedstatement> 
</Beliebiger Elementname>

Für jedes Element <namedpreparedstatement/> 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 und bestimmt das Format der zurückgegebenen Datumswerten.

  • Es enthält ein Element <sql/>.

Für jedes XML-Element eines benannten Parameters innerhalb der SQL-Anweisung in Element <sql/> gilt:

  • Der Elementname gibt den Parameter-Namen an, der mit entsprechenden Element innerhalb von <row/> übereinstimmt.

  • 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; Standard: in.

  • Das optionale Attribut type gibt den Datentyp an, z. B. INTEGERBLOB oder VARCHAR (Standard).

  • 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 und gibt das erwartete Format für den Wert innerhalb des entsprechenden <row>-Elements vor. 

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<]]><id type="INTEGER" /> 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 <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 muss mindestens ein Element enthalten, das dem Elementnamen im SQL-Statement entspricht.

  • Die darin liegenden Elemente enthalten die jeweiligen Werte.

Beachten Sie für jedes Datenelement innerhalb von <row/>, dass im Elementinhalt keine unbeabsichtigten Zeilenumbrüche definiert wurden (z.B. durch Editor-Formatierung). Andernfalls würden diese Zeilenumbrüche in der erzeugten SQL-Anweisung als \n angefügt.

Beachten Sie Folgendes

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>
	<namedpreparedstatement resulttag="namedPreparedStatementWithCData" 
     timezone="UTC" format="dd.MM.yyyy">
		<sql>
             SELECT * FROM PROCESS WHERE X4_DURATION= <duration type="INTEGER" 
                mode="in" /> AND X4_PROCESSNAME= <processname 
                type="VARCHAR" mode="in" />
        </sql>
		<rowset>
			<row>
				<duration>101</duration>
				<processname>Project/Process/Path/Process.wrf</processname>
			</row>
		</rowset>
	</namedpreparedstatement>
</Rootelement>

Output

Wurde die SQL-Anweisung erfolgreich ausgeführt, gibt der Adapter ein XML-Dokument mit folgender Struktur zurück, das die Antwort der Datenbank als Zeichenkette (String) enthält:

HTML/XML
<Data>
   <Ergebniselementname>
      <Feld1><!--Wert--></Feld1>
      <Feldn><!--Wert--></Feldn>
   </Ergebniselementname>
</Data>
JavaScript errors detected

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

If this problem persists, please contact our support.