space
Previous Page | Next Page

Advanced Topics

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.  [cautionend]

space
Previous Page | Next Page | Top of Page