Bedingungsoperatoren

Gemeinsame Operatoren

Folgende Vergleichsoperatoren werden von den beiden XML-Elementen condition und doccondition unterstützt:

Operator

Beschreibung

eq

Feldinhalt ist gleich dem angegebenen Wert.

neq

Feldinhalt ist ungleich dem angegebenen Wert.

in

Feldinhalt ist gleich einem angegebenen Wert aus einer Wertemenge.

notin

Feldinhalt ist ungleich einem angegebenen Wert aus einer Wertemenge.

is_null

Prüft, ob der Feldinhalt NULL ist

is_not_null

Prüft, ob der Feldinhalt ungleich NULL ist

Bedingungsoperatoren

Operator

Beschreibung

num_gt

Feldinhalt ist größer als angegebener Wert.

num_geq

Feldinhalt ist größer als oder gleich dem angegebenen Wert.

num_lt

Feldinhalt ist kleiner als angegebener Wert.

num_leq

Feldinhalt ist kleiner als oder gleich dem angegebenen Wert.

num_eq

Feldinhalt ist gleich dem angegebenen Wert.

num_neq

Feldinhalt ist ungleich dem angegebenen Wert.

num_in

Feldinhalt ist gleich einem angegebenen Wert aus einer Wertemenge.

num_notin

Feldinhalt ist ungleich einem angegebenen Wert aus einer Wertemenge.

timestamp_eq

Prüft, ob der Zeitstempel des Feldes mit dem angegebenen Vergleichswert (value) übereinstimmt. Der Vergleichswert muss im Format dd.MM.yyyy HH:mm:ss angegeben werden, dies gilt auch für alle anderen timestamp_*-Operatoren.

timestamp_geq

Prüft, ob der Zeitstempel des Feldes größer/gleich dem Vergleichswert ist.

timestamp_gt

Prüft, ob der Zeitstempel des Feldes größer als der Vergleichswert ist.

timestamp_leq

Prüft, ob der Zeitstempel des Feldes kleiner/gleich Vergleichswert ist

timestamp_lt

Prüft, ob der Zeitstempel des Feldes kleiner Vergleichswert ist

time_eq

Prüft Uhrzeit des Feldes auf Gleichheit. Der Vergleichswert muss im Format HH:mm:ss angegeben werden, dies gilt auch für alle anderen time_*-Operatoren.

time_geq

Prüft Uhrzeit des Feldes auf größer/gleich

time_gt

Prüft Uhrzeit des Feldes auf größer

time_leq

Prüft Uhrzeit des Feldes auf kleiner/gleich

time_lt

Prüft Uhrzeit des Feldes auf kleiner

date_eq

Prüft Datum des Feldes auf Gleichheit. Der Vergleichswert muss im Format dd.MM.yyyy angegeben werden, dies gilt auch für alle anderen date_*-Operatoren.

date_geq

Prüft Datum des Feldes auf größer/gleich

date_gt

Prüft Datum des Feldes auf größer

date_leq

Prüft Datum des Feldes auf kleiner/gleich

date_lt

Prüft Datum des Feldes auf kleiner

like
(nur mit Zeichenketten-Datenbankfeldern, z.B. CHAR, VARCHAR)

Vergleich von Feldwerten mit einer variablen Zeichenkette
Folgende Platzhalter sind erlaubt:
* Kein bzw. beliebig viele Zeichen
? Genau ein beliebiges Zeichen
\ Maskierungszeichen für die Suche nach
Platzhaltern bzw. Maskierungszeichen in der
Form: \\ bzw. \* bzw. \?

Beispiel:

<condition fieldname="OBJECTID"
logicaloperator="like">
<value>*10?0\\20?0*</value>
</condition>

Gesucht werden Werte wie z. B.
5551050\20106667 oder 1080\204044, aber nicht 34510550\2030*

char_
creationtimestamp

Aus Quelldatenbankfeldern vom Datentyp CHAR/VARCHAR, die Zeitangaben enthalten, werden Zeitstempel (Datum und Uhrzeit) gelesen. Deren Werte bilden die Grundlage für die Einschränkung des auszulesenden Datenbereichs mit den Kommandozeilenparametern -begindate
(-begintime) bzw. -enddate (-endtime) [s. Kap. Quelldatenbankspezifische Argumente].
Mehrere Felder werden durch die Zeichenkombination #-# voneinander getrennt. Für jedes Feld wird das Zeitstempelformat im XML-Element value angegeben. Dieses Format enthält die Werte im entsprechenden Quelldatenbankfeld.

Beispiel:

<condition fieldname="VC_DATE#-#VC_TIME"
logicaloperator="char_creationtimestamp">
<value>yyyyMMdd</value>
<value>HHmmss</value>
</condition>

Beachten Sie bei Verwendung des Operators char_creationtimestamp mögliche Auswirkungen von speziellen Zeitformaten der Quelldatenbankfelder auf Sortierung und Extraktion der Daten. Die Datenbankfelder in einem Zeitformat werden in alphabetischer Reihenfolge ausgelesen. Sind die Werte des Datumsfeldes z.B. im Format ddMMyyyy in der Datenbank gespeichert, würde beim Auslesen des Zeitraumes 15.01.2000–31.12.2000 das Datum 23021999 ausgelesen werden, weil es alphabetisch gesehen zwischen Start- und Enddatum liegt. Das Datum 09122000 liegt dagegen nicht in diesem Bereich, weil es als kleiner als das Startdatum interpretiert würde.

date_
creationtimestamp

Aus Quelldatenbankfeldern mit Zeitangaben, die von einem datenbanksystemabhängigen Zeit-Datentyp sind, werden Zeitstempel (Datum und Uhrzeit) gelesen. Deren Werte bilden die Grundlage für die Einschränkung des auszulesenden Datenbereichs mit den Kommandozeilenparametern -begindate
(-begintime) bzw. -enddate (-endtime) [s. Kap. Quelldatenbankspezifische Argumente].
Mehrere Felder werden durch die Zeichenkombination #-# voneinander getrennt. Für jedes auszulesende Feld werden in den XML-Elementen value die Datentypen entsprechend den Quelldatenbankfeldern in einem der drei Zeit-Datentypen angegeben. Es sind nur folgende Datentypen in den angegebenen Kombinationen zulässig: DATE/TIME oder TIME/DATE oder TIMESTAMP oder DATE

Beispiel:

<condition fieldname="CHG_DATE#-#CHG_TIME"
logicaloperator="date_creationtimestamp">
<value>DATE</value>
<value>TIME</value>
</condition>

valueconstraint

Angabe eines Quelldatenbanksystemfeldes mit Integer-Werten, die für die Einschränkung des auszulesenden Datenbereichs mit dem Kommandozeilenparameter -valueconstraint
verwendet werden [s. Kap. Quelldatenbankspezifische Argumente].
Das auszulesende Feld muss von einem Integer-Datentyp sein.

Beispiel:

<condition fieldname="INTEGERFIELD"
logicaloperator="valueconstraint"/>

Bei Verwendung der timestamp_*-, time_*- und date_*-Operatoren aus obiger Tabelle müssen Sie wissen, welcher Datentyp in welchem Format dem aus dem entsprechenden Datenbanksystem (Oracle, IBM DB2, MS SQL Server) ausgelesenen Wert zugrunde liegt.

Die folgenden Tabellen liefern eine Übersicht über die unterschiedlichen DB-Datentypen und DB-Formate sowie erzeugte Beispielformate in der XML-Ausgabedatei:

Oracle / Datentyp TIMESTAMP

In die Datenbank geschriebenes Wert-format (Beispiel)

Ergebnisformat in der XML-Ausgabedatei (Beispiel)

Hinweis

07.05.2005 04:02:36

07.05.2005 04:02:36

-

07.05.2005

07.05.2005 12:25:11

Uhrzeit = Erzeugungsuhrzeit des Datenbank-Feldwerts

04:02:36

21.12.2005 04:02:36

Datum = Erzeugungsdatum des Datenbank-Feldwerts

Oracle / Datentyp DATE

In die Datenbank geschriebenes Wert-format (Beispiel)

Ergebnisformat in der XML-Ausgabedatei (Beispiel)

Hinweis

07.05.2005 04:02:36

07.05.2005 04:02:36

-

07.05.2005

07.05.2005 12:25:11

Uhrzeit = Erzeugungsuhrzeit des Datenbank-Feldwerts

04:02:36

21.12.2005 04:02:36

Datum = Erzeugungsdatum des Datenbank-Feldwerts

Der Oracle-Datentyp DATE speichert ausschließlich Zeitstempelwerte im Format dd.MM.yyyy HH:mm:ss. Um die gewünschten Daten aus einer Oracle-Datenbank auslesen zu können, müssen die Auslesebedingungen bei Verwendung von date_*-Operatoren in geeigneter Weise konfiguriert werden.

Beispiel

Sie möchten alle Datensätze mit dem Datum 16.09.2004 auslesen, die Uhrzeit sei dabei egal. Wenn Sie in der Tabellenkonfiguration die folgende Bedingung angeben:

<condition fieldname="TACT_TDATE" logicaloperator="date_eq">

<value>16.09.2004</value>

</condition>

werden nur die Datensätze mit dem Zeitstempel 16.09.2004 00:00:00 ausgelesen. Um sicherzustellen, dass alle Datensätze des angegebenen Datums ausgelesen werden, müssen Sie die Bedingung umformulieren:

<booleancondition logicaloperator="AND">

<condition fieldname="TACT_TDATE"

logicaloperator="date_geq">

<value>16.09.2004</value>

</condition>

<condition fieldname="TACT_TDATE"

logicaloperator="date_lt">

<value>17.09.2004</value>

</condition>

</booleancondition>

Mit der angegebenen Bedingung werden alle Datensätze mit dem Datum 16.09.2004 und beliebiger Uhrzeit ausgelesen.

IBM DB2 / Datentyp TIMESTAMP

In die Datenbank geschriebenes Wert-format (Beispiel)

Ergebnisformat in der XML-Ausgabedatei (Beispiel)

Hinweis

07.05.2005 04:02:36

07.05.2005 04:02:36

-

IBM DB2 / Datentyp DATE

In die Datenbank geschriebenes Wert-format (Beispiel)

Ergebnisformat in der XML-Ausgabedatei (Beispiel)

Hinweis

07.05.2005

07.05.2005

-

IBM DB2 / Datentyp TIME

In die Datenbank geschriebenes Wert-format (Beispiel)

Ergebnisformat in der XML-Ausgabedatei (Beispiel)

Hinweis

04:02:36

04:02:36

-

MS SQL Server / Datentyp DATETIME

In die Datenbank geschriebenes Wert-format (Beispiel)

Ergebnisformat in der XML-Ausgabedatei (Beispiel)

Hinweis

07.05.2005 04:02:36

07.05.2005 04:02:36

-

07.05.2005

07.05.2005 00:00:00

Uhrzeit ist immer 00:00:00

04:02:36

01.01.1900 04:02:36

Datum ist immer 01.01.1900

MS SQL Server / Datentyp SMALLDATETIME

In die Datenbank geschriebenes Wert-format (Beispiel)

Ergebnisformat in der XML-Ausgabedatei (Beispiel)

Hinweis

07.05.2005 04:02:36

07.05.2005 04:02:00

Uhrzeit nur minutengenau

07.05.2005

07.05.2005 00:00:00

Uhrzeit ist immer 00:00:00

04:02:36

01.01.1900 04:02:00

Datum ist immer 01.01.1900 und die Uhrzeit nur minutengenau

doccondition-Operatoren

Operator

Beschreibung

exists

Feld existiert.

notexists

Feld existiert nicht.