Missing Values (Nulls)

When the interface view engine is reading ADABAS data and constructing an observation, it could find missing (null) values for data fields within an observation.
The interface view engine uses the L1, L2, L3, and L4 commands to retrieve ADABAS data. The values are returned in the record buffer using the standard length and format defined for that field. (Standard length is not used if you have specified a value for the DB Content field or the field is a variable length field.) If the field's value is null, the data is returned in the format in effect for that field.
Formats and their corresponding null values are listed below.
ADABAS Data Formats and Null Values
Format
Null Value
Alphanumeric
blanks
Binary
binary zeros
Fixed Point
binary zeros
Unpacked Decimal
unpacked decimal zeros
Packed Decimal
packed decimal zeros
Floating point
binary zeros
When an ADABAS record is read, the interface view engine is unable to tell whether a field has a value of zero (for numeric fields) or blanks (for alphanumeric fields) or truly has a null value. This is also true when you are updating. When you are using the FSEDIT procedure, if a value of zero or missing is used to modify an existing record, zeros are placed in the ADABAS record buffer and subsequently added to the ADABAS file. Blanks are placed in the record buffer if a blank or missing value was supplied for an alphanumeric field.
Since SAS missing values are stored as zeros and blanks in ADABAS files, some SAS WHERE clauses are also impacted. For example, if either of the following SAS WHERE clauses are issued,
where aa is missing;
where aa is null;
the resulting condition is sent to ADABAS:
where aa = 0 (numeric)
where aa = 'Ø' (alphanumeric)
Note: Null values are processed differently by ADABAS if the ADABAS descriptor used in a WHERE clause has the Null Value Suppress (NU) definition option defined for it.