## NULL-Wert-Darstellung

Der Loader ist in der Lage verschiedene NULL-Wert-Darstellungen in den Datenströmen zu verarbeiten.

Sie können die voreingestellte NULL-Wert-Darstellung verwenden oder diese für eine Loader-Sitzung oder für einzelne Loader-Kommandos festlegen.

### NULL-Wert-Darstellung für eine Loader-Sitzung festlegen

Sie können für die aktuelle Loader-Sitzung die NULL-Wert-Darstellung mit dem SET-Kommando festlegen. Diese gilt dann so lange für diese Loader-Sitzung, bis sie durch ein erneutes SET-Kommando überschrieben wird. Wenn Sie über das SET-Kommando keine NULL-Wert-Darstellung festgelegen, wird der Vorschlagswert des Loader (Fragezeichen ?) verwendet.

<SET_null_spec_command> ::= SET <null_spec>

<null_spec> ::= NULL '<literal>'

Sie können mit dem SET-Kommando die Zeichenkette literal festlegen, mit der NULL-Werte in Datenströmen repräsentiert werden. Eine NULL-Wert-Darstellung kann maximal eine Länge von 20 Zeichen haben und ist vom Datentyp CHAR.

Siehe auch:

SQL-Referenzhandbuch, Literal (literal), NULL-Wert

### NULL-Wert-Darstellung für den Datenstrom festlegen

Sie haben die Möglichkeit, für einzelne Loader-Kommandos den aktuellen Wert für die NULL-Wert-Darstellung in Datenströmen festzulegen. Verwenden Sie für diese Zwecke das Syntaxelement null_spec zur Definition des Datenformats eines Datenstroms. Wenn Sie über das Syntaxelement null_spec keine NULL-Wert-Darstellung für den Datenstrom festlegen, wird der mit dem SET-Kommando für die Loader-Sitzung gesetzte Wert verwendet. Wenn Sie über das SET-Kommando keine NULL-Wert-Darstellung festgelegt haben, wird der Vorschlagswert des Loader (Fragezeichen ?) verwendet.

Die NULL-Wert-Darstellungen können Sie nur für Datenströme der Formate CSV und FWV vornehmen, für die Formate RECORDS und PAGES ist eine NULL-Wert-Darstellung nicht nötig und möglich.

<csv_or_fwv_format_null_spec> ::= <null_spec>

<null_spec> ::= NULL '<literal>'

Sie legen mit der Syntaxregel null_spec die Zeichenkette literal fest, mit der NULL-Werte in Datenströmen repräsentiert werden. Eine NULL-Wert-Darstellung kann maximal eine Länge von 20 Zeichen haben und ist vom Datentyp CHAR.

Siehe auch:

Datenformat

Sie möchten die Daten des Datenstroms room_cvs.data in die Datenbank importieren, wobei in die Spalten der Zieltabelle der NULL-Wert in eigener Darstellung importiert werden soll. Ein SET-Kommando wurde nicht verwendet.

IMPORT TABLE hotel.room
DATA INSTREAM 'room_csv.data' NULL 'NULL'

Für die Darstellung des NULL-Wertes im Datenstrom room_csv.data wurde das Literal NULL gewählt.

Sie möchten die Daten des Datenstroms room_cvs.data in die Datenbank importieren, wobei in die Spalten der Zieltabelle der Vorschlagswert für den NULL-Wert importiert werden soll. Ein SET-Kommando wurde nicht verwendet.

IMPORT TABLE hotel.room
DATA INSTREAM 'room_csv.data'

Für die Darstellung des NULL-Wertes im Datenstrom room_csv.data wurde das Literal ? gewählt.

### NULL-Wert-Darstellung für ein Datenfeld festlegen

Die NULL-Wert-Darstellung für Datenströme im Format RECORDS oder PAGES wird vom Loader intern verwaltet. Daher sind die folgenden Erläuterungen für die Kommandos EXPORT DB|USER|SCHEMA bzw. IMPORT DB|USER|SCHEMA nicht relevant.

#### Ausgabespalten in EXPORT-Kommandos

Sie können in EXPORT TABLE oder EXPORT COLUMNS-Kommandos die NULL-Wert-Darstellung für einzelne Datenfelder festlegen. Sie geben durch das Syntaxelement null_assign 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. Wenn Sie über das Syntaxelement null_assign keine NULL-Wert-Darstellung festlegen, wird der über das Syntaxelement null_spec gesetzte Wert für den Datenstrom auch für das Datenfeld verwendet. Wenn Sie über das Syntaxelement null_spec keine NULL-Wert-Darstellung für den Datenstrom festgelegt haben, wird der mit dem SET-Kommando für die Loader-Sitzung gesetzte Wert verwendet. Wenn Sie über das SET-Kommando keine NULL-Wert-Darstellung festgelegt haben, wird der Vorschlagswert des Loader (Fragezeichen ?) verwendet.

<null_assign> ::= [IF] NULL SET '<literal>'

Sie können mit dem Syntaxelement null_assign die Zeichenkette literal festlegen, mit der NULL-Werte in Datenströmen repräsentiert werden. Eine NULL-Wert-Darstellung kann maximal eine Länge von 20 Zeichen haben und ist vom Datentyp CHAR.

Wenn die NULL-Wert-Darstellung 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 NULL-Wert-Darstellung wird an die gleiche Stelle im Datenstrom geschrieben, an die der eigentliche Spaltenwert geschrieben werden würde.

● Wenn die NULL-Wert-Darstellung kürzer ist als die durch die Positionsangabe spezifizierte Länge des Wertes (für Datenströme im Format FWV), dann wird der Wert mit Leerzeichen aufgefüllt. Wenn die NULL-Wert-Darstellung länger ist, dann wird sie beim Schreiben auf die angegebene Länge gekürzt. Der Loader gibt dazu eine Warnung in die Protokolldatei aus.

● Wenn Sie für den Export von NOT-NULL-Spalten eine NULL-Wert-Darstellung definieren, führt dies nicht zu einem Fehler. Der Loader ignoriert die Angaben in diesen Fällen.

Siehe auch:

Ausgabespalte

EXPORT TABLE-Kommando

EXPORT COLUMNS-Kommando

Sie möchten die Tabelle ROOM aus der Datenbankinstanz in den Datenstrom room_csv.data exportieren, wobei einige Spalten der Tabelle NULL-Werte enthalten. Ein SET-Kommando wurde nicht verwendet.

EXPORT COLUMNS * FROM hotel.room
MAP COLUMNS
hno 1
type 2
free 3 IF NULL SET '0'
price 4 IF NULL SET 'X'
DATA OUTSTREAM 'room_csv.data'

Sie verwenden für die Spalten FREE und PRICE das Syntaxelement null_assign. Wenn in der Spalte ein NULL-Wert gefunden wird, wird die jeweilige NULL-Wert-Darstellung in den Datenstrom eingetragen. Für die anderen Spalten wird die als Vorschlagswert des Loader definierte NULL-Wert-Darstellung '?' verwendet.

Sie möchten die Tabelle ROOM aus der Datenbankinstanz in den Datenstrom room_csv.data exportieren, wobei einige Spalten der Tabelle NULL-Werte enthalten. Ein SET-Kommando wurde nicht verwendet.

EXPORT COLUMNS * FROM hotel.room
MAP COLUMNS
hno 1
type 2
free 3
price 4
DATA OUTSTREAM 'room_csv.data'

oder

EXPORT TABLE hotel.room
DATA OUTSTREAM 'room_csv.data'

Da Sie für keine im EXPORT-Kommando aufgeführte Spalte eine NULL-Wert-Darstellung definiert haben, aber alle Werte den externen Datentyp CHAR haben, wird die als Vorschlagswert des Loader definierte NULL-Wert-Darstellung ? verwendet.

Sie möchten die Tabelle ROOM aus der Datenbankinstanz in den Datenstrom room_fwv_binary.data exportieren, wobei einige Spalten der Tabelle NULL-Werte enthalten. Ein SET-Kommando wurde nicht verwendet.

EXPORT COLUMNS * FROM hotel.room
MAP COLUMNS
hno 01-05
type 06-11
free 12-15 INTEGER
price 16-19 INTEGER
DATA OUTSTREAM 'room_fwv_binary.data' FWV BINARY

Da Sie für keine der im EXPORT-Kommando aufgeführten Spalten eine NULL-Wert-Darstellung definiert haben, versucht der Loader, die als Voreinstellung definierte NULL-Wert-Darstellung (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.

#### Spaltenbeschreibung in IMPORT- und UPDATE-Kommandos

Sie können in IMPORT TABLE-, IMPORT COLUMNS- und UPDATE COLUMNS-Kommandos mit dem Syntaxelement null_condition festlegen, unter welchen Bedingungen ein NULL-Wert in eine Spalte der Zieltabelle importiert werden soll.

Wenn Sie alle Spalten beim IMPORT oder UPDATE angeben, jedoch keine null_condition spezifizieren, werden die Werte aus dem Datenstrom in die Zieltabelle so importiert, wie sie im Datenstrom stehen, d.h. der Loader versucht nicht, einzelne Werte als NULL-Wert zu interpretieren.

<null_condition> ::= NULL [IF] <condition>
| DEFAULT NULL

● NULL [IF] <condition>: Vor dem Importieren bzw. Ändern jeder Zeile des Datenstroms in die Tabelle wird geprüft, ob die für die Spalten formulierte Bedingung condition zutrifft. Wenn ja, wird der NULL-Wert in diese Tabellenspalte eingefügt, andernfalls der Wert aus dem zugeordneten Feld des Datenstroms. Bei der Auswertung der Bedingung (condition) wird der kürzere der jeweiligen Vergleichswerte (Wert im Datenstrom oder NULL-Wert-Darstellung) mit Leerzeichen aufgefüllt, um den Vergleich zu ermöglichen.

● DEFAULT NULL: Vor dem Importieren bzw. Ändern jeder Zeile des Datenstroms wird geprüft, ob der Wert im Datenstrom für die Spalte mit dem Vorschlagswert des Loader für den NULL-Wert übereinstimmt. Wenn ja, wird der NULL-Wert in diese Spalte eingefügt, andernfalls der Wert aus dem zugeordneten Feld des Datenstroms. Beim Vergleich wird der kürzere der jeweiligen Vergleichswerte (Wert im Datenstrom oder NULL-Wert-Darstellung) mit Leerzeichen aufgefüllt, um den Vergleich zu ermöglichen.

Wenn Sie DEFAULT NULL verwenden, wird der Vorschlagswert des Loader für den NULL-Wert wie folgt bestimmt: D er über das Syntaxelement null_spec für den Datenstrom gesetzte Wert wird als NULL-Wert verwendet. Wenn Sie über das Syntaxelement null_spec keine NULL-Wert-Darstellung für den Datenstrom festgelegt haben, wird der mit dem SET-Kommando für die Loader-Sitzung gesetzte Wert verwendet. Wenn Sie über das SET-Kommando keine NULL-Wert-Darstellung festgelegt haben, wird der Vorschlagswert des Loader (Fragezeichen ?) verwendet.

Für Spalten, die Sie als Schlüsselspalten (KEY) oder als NOT NULL definiert haben, können Sie keinen NULL-Wert setzen. Das Importieren bzw. Ändern der Tabelle wird mit einer entsprechenden Fehlermeldung abgebrochen.

Für Spalten, die Sie als NOT NULL DEFAULT <value> definiert haben, fügt der Loader anstelle eines NULL-Wertes den DEFAULT-Wert ein.

Siehe auch:

Spaltenbeschreibung

IMPORT TABLE-Kommando

IMPORT COLUMNS-Kommando

UPDATE COLUMNS-Kommando

Sie möchten die Daten des Datenstroms room_cvs.data in die Datenbank importieren, wobei in einige Spalten der Zieltabelle der NULL-Wert importiert werden soll, wenn eine explizit angegebene Bedingung erfüllt ist.

IMPORT TABLE hotel.room
DATA INSTREAM 'room_csv.data'
hno 1
type 2
free 3 NULL IF POS 3 = '0'
price 4 NULL IF POS 4 <> 'XXXX'

Für jede der Spalten FREE und PRICE definieren Sie eine eigene Bedingung für das angegebene Datenfeld. Wenn diese erfüllt ist, wird der NULL-Wert in die entsprechende Tabellenspalte eingetragen.

Sie möchten die Daten des Datenstroms customer_csv.data in die Datenbank importieren. In einige Spalten der Zieltabelle soll der NULL-Wert importiert werden, wenn eine explizit angegebene Bedingung erfüllt ist. In andere Spalten soll der NULL-Wert importiert werden, wenn der Vorschlagswert des Loader für die NULL-Wert-Darstellung gefunden wird. Ein SET-Kommando wurde nicht verwendet.

IMPORT TABLE hotel.customer
DATA INSTREAM 'customer_csv.data'
cno 1
title 2 DEFAULT NULL
firstname 3 NULL IF POS 3 = 'XXXX'
name 4
zip 5 DEFAULT NULL
address 6

Für die Spalten TITLE und ZIP g ilt als Bedingung, dass der NULL-Wert in die entsprechende Tabellenspalte eingetragen wird, wenn die Default-NULL-Darstellung des Loader ? im Datenstrom gefunden wird. Für die Spalte FIRSTNAME wurde eine eigene Bedingung für die Werte im Datenstrom definiert, bei deren Erfüllung der NULL-Wert in die entsprechende Tabellenspalte eingetragen wird.

Sie möchten die Daten des Datenstroms room_cvs.data in die Datenbank importieren, wobei in einige Spalten der Zieltabelle der NULL-Wert importiert werden soll. Ein SET-Kommando wurde nicht verwendet.

IMPORT TABLE hotel.room
DATA INSTREAM 'room_csv.data'
hno 1
type 2
free 3 DEFAULT NULL
price 4 DEFAULT NULL

Für alle im IMPORT-Kommando aufgeführten Spalten, für die DEFAULT NULL angegeben ist, gilt die gleiche Darstellung des NULL-Wertes im Datenstrom ?. Das ist in diesem Fall der Vorschlagswert für die NULL-Wert-Darstellung. Für die Spalten FREE und PRICE g ilt als Bedingung, dass der NULL-Wert in die entsprechende Tabellenspalte eingetragen wird, wenn die NULL-Darstellung des Loader ? im Datenstrom gefunden wird.

Sie möchten die Daten des Datenstroms room_cvs.data in die Datenbank importieren, wobei in einige Spalten der Zieltabelle der NULL-Wert in eigener Darstellung importiert werden soll.

IMPORT TABLE hotel.room
DATA INSTREAM 'room_csv.data' NULL 'NULL'
hno 1
type 2
free 3 DEFAULT NULL
price 4 DEFAULT NULL

Für alle im IMPORT-Kommando aufgeführten Spalten, für die DEFAULT NULL angegeben ist, gilt die gleiche Darstellung des NULL-Wertes im Datenstrom: das Literal NULL. Für die Spalten FREE und PRICE g ilt als Bedingung, dass der NULL-Wert in die entsprechende Tabellenspalte eingetragen wird, wenn die NULL-Darstellung des Loader NULL im Datenstrom gefunden wird.