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 |
Vergleich von Feldwerten mit einer variablen Zeichenkette Beispiel: <condition fieldname="OBJECTID" Gesucht werden Werte wie z. B. |
char_ |
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 Beispiel: <condition fieldname="VC_DATE#-#VC_TIME" 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_ |
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 Beispiel: <condition fieldname="CHG_DATE#-#CHG_TIME" |
valueconstraint |
Angabe eines Quelldatenbanksystemfeldes mit Integer-Werten, die für die Einschränkung
des auszulesenden Datenbereichs mit dem Kommandozeilenparameter -valueconstraint Beispiel: <condition fieldname="INTEGERFIELD" |
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. |