Writing NULLs and Skipping Columns
For some columns, nothing should be sent to the database when performing an INSERT or an UPDATE. Basically, you have to distinguish between the option in (1) and sending an explicit NULL to the database. Both possibilities can be realized with Lobster_data.
Skip Empty Value
A column can be skipped on an UPDATE/INSERT if the attribute (1) of a destination structure field is set to Yes. The column is skipped if no field value exists.
When is no field value available? In practice, if the function is empty(a) returns true. The field value can explicitly be set to empty with the function set empty(a), but this can also happen implicitly during unsuccessful parsing or by various other functions. If a field has the value "" (i.e. a string of length 0), function is empty(a) does not return true. Please see section Empty Flag on this topic.
Explicitly Send NULL
A column value is sent to the database as NULL if the destination structure field value is @NULL@. The value can only be set via function, but not via a fixed value (field attribute). Option (1) must be set to No.
Note: In databases, you have to distinguish between the symbolic value NULL and the string 'NULL', the number 0 and an empty string '' (sometimes also called empty value), which are actual values. The symbolic value represents at the meta level that a table field, for example, does not have a value yet. In virtually every database management system, you can detect an optical difference between the symbolic value NULL and actual values. SQL queries also know this difference.
Note: If you assign value @NULL@ to a destination structure field, this has the same effect as executing function set empty(a). I.e. the function would return true and in a mapping test, the field would be displayed with no value. However, explicitly writing the symbolic NULL value to the database can only be done with the actual destination structure field value @NULL@. I.e. a destination structure field with a set Empty Flag alone is not sufficient for writing the symbolic NULL value into the database.