Nullwerte schreiben und Spalten überspringen
Einführung: Eine Beschreibung dieser Phase finden Sie im Abschnitt Phase 4 (Einführung).
Bei manchen Spalten darf beim Einfügen/Ändern von Werten nichts an die Datenbank gesendet werden. Grundsätzlich muss man unterscheiden zwischen der Option in (1) und dem Senden einer expliziten NULL an die Datenbank. Beide Möglichkeiten können mit Lobster_data realisiert werden.
Leeren Wert überspringen
Eine Spalte kann bei einem UPDATE/INSERT übersprungen werden, wenn die Option (1) eines Zielstrukturfeldes auf Ja steht. Die Spalte wird dann übersprungen, wenn kein Feldwert vorhanden ist.
Wann ist kein Feldwert vorhanden? Praktisch, wenn die Funktion get empty flag(a) als Ergebnis true liefert. Der Feldwert kann auch explizit mit der Funktion set empty flag(a) auf leer gesetzt werden, es kann aber auch beim erfolglosen Parsen oder über diverse andere Funktionen geschehen. Hat ein Feld den Wert "" (also ein String der Länge 0), dann liefert die Funktion get empty flag(a) nicht true. Bitte sehen Sie sich zu dieser Thematik den Abschnitt Empty Flag an.
Explizit NULL senden
Ein Spaltenwert wird als NULL an die Datenbank gesendet, wenn im Zielstrukturfeld als Wert @NULL@ steht. Der Wert kann nur über eine Funktion, aber nicht über einen Fixwert gesetzt werden. Die Option (1) muss dabei auf Nein stehen.
Hinweis: In Datenbanken ist der symbolische Wert NULL zu unterscheiden von dem String 'NULL', der Zahl 0 und einem leeren String '' (oft auch leerer Wert genannt), welche tatsächliche Werte sind. Der symbolische Wert stellt auf Meta-Ebene dar, dass z. B. ein Tabellenfeld noch keinen Wert hat. In praktisch jedem Datenbank-Management-System kann man einen optischen Unterschied zwischen dem symbolischen Wert NULL und tatsächlichen Werten feststellen. SQL-Abfragen kennen diesen Unterschied auch.
Hinweis: Wenn Sie ein Zielstrukturfeld mit dem Wert @NULL@ belegen, dann hat das denselben Effekt wie die Funktion set empty flag(a). D. h. die Funktion get empty flag(a) würde danach true liefern und in einem Mappingtest würde das Feld mit no value angezeigt. Dennoch kann das explizite Schreiben des symbolischen NULL-Wertes in die Datenbank nur mit dem tatsächlichen Zielstruktur-Feldwert @NULL@ bewirkt werden, d. h. ein Zielstrukturfeld mit gesetztem Empty Flag allein ist nicht ausreichend für das Schreiben des symbolischen NULL-Wertes in die Datenbank.