Anfang des Inhaltsbereichs

Funktionsdokumentation Initialwerte  Dokument im Navigationsbaum lokalisieren

Verwendung

Ist der Wert eines Feldes in einem Datensatz undefiniert oder unbekannt, so wird dies als NULL-Wert bezeichnet. NULL-Werte entstehen durch Einfügen neuer Felder in bestehende Tabellen oder durch Inserts über Datenbank-Views.

Wenn Sie ein neues Feld in eine auf der Datenbank bereits vorhandene Tabelle einfügen, so wird diese Operation mit der DDL-Anweisung

ALTER TABLE <Tabellenname> ADD FIELD <Feldname>

auf der Datenbank durchgeführt. Bereits vorhandene Sätze haben dann einen NULL-Wert im neuen Feld. Wird ein INSERT auf eine Tabelle über eine Datenbank-View vorgenommen, werden NULL-Werte in alle nicht in der View enthaltene Felder der Tabelle eingefügt.

NULL-Werte bringen keine Nachteile mit sich, solange nicht auf das entsprechende Feld selektiert wird. Bei einer Selektion auf ein Feld mit NULL-Werten werden eventuell nicht alle Einträge gefunden, auf die die Selektionsbedingung passt. Der Grund dafür ist, dass NULL-Werte nur die Selektionsbedingung WHERE FIELD IS NULL erfüllen.

Beispiel

Sie fügen Feld Feld1 in Tabelle TAB ein. Wird auf diese Tabelle mit der Anweisung SELECT... FROM TAB WHERE Feld1 <> 5... zugegriffen, so werden Sätze mit NULL-Werten in Feld1 nicht gefunden, obwohl diese logisch der WHERE-Bedingung der SELECT-Anweisung entsprechen.

Diesen im Beispiel beschriebenen Fall können Sie vermeiden, indem Sie das eingefügte Feld als Initial definieren. Das Feld wird auf der Datenbank als NOT NULL angelegt. Beim Aktivieren wird die gesamte Tabelle durchlaufen und das neue Feld mit dem Initialwert gefüllt.

Hinweis

Dies kann sehr zeitaufwändig sein. Sie sollten deshalb das Initial-Kennzeichen nur verwenden, wenn es wirklich notwendig ist oder wenn die Tabelle nur wenige Einträge hat.

Die Initialwerte sind vom Datentyp des Feldes abhängig.

Datentyp

Initialwert

ACCP, CHAR, CUKY, LANG, UNIT

“ “  Leerzeichen

CURR, DEC, FLTP, INT1, INT2, INT4, QUAN

0

CLNT

000

TIMS

000000

DATS

00000000

NUMC

00000... für Feldlänge <= 32

Kein Initialwert für Feldlänge > 32

LRAW, LCHR, RAW, VARC

Kein Initialwert

Es können auch Felder auf der Datenbank als NOT NULL angelegt sein, für die das Initial-Kennzeichen im ABAP Dictionary nicht markiert ist. Ob ein Feld auf der Datenbank als NOT NULL definiert ist, können Sie im Pflegebildschirm der entsprechenden Tabelle feststellen, indem Sie Hilfsmittel Datenbankobjekt Anzeigen wählen.

Beim Anlegen einer Tabelle werden alle Felder der Tabelle als NOT NULL und mit Default-Wert angelegt. Das gleiche gilt beim Umsetzen der Tabelle. Nur wenn neue Felder an- bzw. eingefügt werden, werden diese nicht als NOT NULL angelegt. Eine Ausnahme hiervon sind Schlüsselfelder, die automatisch mit einem Initial-Kennzeichen versehen werden.

Hinweis

Wenn Sie das Initial-Kennzeichen für ein Include setzen, so haben die Strukturfelder mit gesetztem Initial-Kennzeichen auch diese Eigenschaft in der Tabelle. Ist das Initial-Kennzeichen nicht gesetzt, sind NULL-Werte für alle Felder des Includes zugelassen.

Achtung

Felder mit den Datentypen LCHR, LRAW, RAW sowie NUMC-Felder mit Feldlänge größer 32 können nicht als Initial deklariert werden.

 

 

 

Ende des Inhaltsbereichs