Syntaxregeln zur Spaltenbeschreibung
<null_assign> ::= [IF] NULL SET '<valLITERAL>'
valLITERAL |
Nullwertdarstellung |
Der Wert für die Nullwertdarstellung ist in einfache Anführungszeichen zu setzen. Er ist ein Klartextwert, den der Loader als Zeichenkette oder binären numerischen Wert darstellt. Dies ist abhängig vom externen Datentyp der Spalte, für die die Nullwertdarstellung erzeugt werden soll.
Wenn die Nullwertdarstellung in einem der externen Datentypen für Binärwerte ausgegeben werden soll, muss sie ein gültiges Zahlenformat haben, d. h. entweder eine Gleitkommazahl in Mantisse-/Exponent-Darstellung oder eine Festkommazahl mit der aktuell vereinbarten oder der Standarddezimaleinstellung sein.
Die erzeugte Nullwertdarstellung wird an die gleiche Stelle im Datenstrom geschrieben, an die der eigentliche Spaltenwert geschrieben würde.
· Wenn die Nullwertdarstellung kürzer ist als die durch die Positionsangabe spezifizierte Länge des Wertes, dann wird der Wert mit Leerzeichen aufgefüllt. Wenn die Nullwertdarstellung länger ist, dann wird sie beim Schreiben auf die angegebene Länge gekürzt. Der Loader gibt dazu eine Warnung aus.
· Wenn Spalten der Zieltabelle NULL-Werte zulassen und Sie dafür keine Nullwertdarstellung definieren, wird für zu entladende NULL-Werte der Vorschlagswert des Loader verwendet (null_spec). Dieser ist vom externen Datentyp CHAR.
· Wenn Sie für das Entladen von NOT-NULL-Spalten eine Nullwertdarstellung definieren, führt dies nicht zu einem Fehler.
Sie geben damit in einem Kommando zum Entladen von Daten an, welcher Wert für das Datenfeld der Quelltabelle in den Datenstrom geschrieben werden soll, wenn der Wert in der Quelltabelle der NULL-Wert ist.
Sie möchten die Quelltabelle article
aus der Datenbankinstanz in den Datenstrom article.data entladen,
wobei einige Spalten der Tabelle NULL-Werte enthalten.
Sie definieren für jede dieser Spalten eine eigene Bedingung. Wenn diese
erfüllt ist, wird die jeweilige Nullwertdarstellung in den Datenstrom
eingetragen.
DATAEXTRACT * FROM article
OUTFIELDS
ano 01-08
descr 09-39 IF NULL SET ' '
stock 40-43 INTEGER IF NULL SET '0'
min_ord 44-45 INTEGER
price 46-53 DECIMAL
(2) IF NULL SET 'X'
weight 54-57 REAL
OUTSTREAM 'article.data' FORMATTED
Sie möchten die Quelltabelle article
aus der Datenbankinstanz in den Datenstrom article.data entladen, wobei
einige Spalten der Tabelle NULL-Werte enthalten.
Da für keine im Kommando aufgeführte Spalte eine Nullwertdarstellung definiert
ist, aber alle Werte den externen Datentyp CHAR haben, wird die als
Vorschlagswert des Loader definierte Nullwertdarstellung '?' verwendet.
DATAEXTRACT * FROM
article
OUTFIELDS
ano 01-08
descry 09-39
stock 40-51
min_ord 52-63
price 64-74
weight 75-85
OUTSTREAM 'article.data' FORMATTED
Sie möchten die Quelltabelle article aus der
Datenbankinstanz in den Datenstrom article.data entladen, wobei einige
Spalten der Tabelle NULL-Werte enthalten.
Da für keine im Kommando aufgeführte Spalte eine Nullwertdarstellung definiert
ist, versucht der Loader, die als Voreinstellung definierte
Nullwertdarstellung (Datentyp CHAR) zu nutzen. Dies führt in jenen Fällen zum
Fehler, in denen für die Spalten ein numerischer externer Datentyp definiert
wurde. Die Bearbeitung des Kommandos wird mit einer Fehlermeldung
abgebrochen.
DATAEXTRACT * FROM
article
OUTFIELDS
ano 01-08
descr 09-39
stock 40-43 INTEGER
min_ord 44-45 INTEGER
price 46-53
DECIMAL (2)
weight 54-57 REAL
OUTSTREAM 'article.data'
FORMATTED