Progress
DataServer
for ORACLE Guide


Unknown Value

The DataServer supports the unknown value, which is represented by a question mark (?) in Progress. In ORACLE the unknown value is stored as a NULL column. This section describes how the DataServer handles the unknown value. Table 2–7 summarizes how Progress and ORACLE unknown and null values map to each other.

Table 2–7: UNKNOWN and NULL Values 
Progress Value
ORACLE Equivalent
UNKNOWN Value (?)
NULL
"" (Zero-length string)
" " (One space)

You can assign the unknown value to a field in an ORACLE database by using the question mark (?) operator, which represents the unknown value. For example, the following procedure assigns the unknown value to the address2 field of the Customer table:

FIND FIRST customer.
address2 = ?. 

The Progress unknown value sorts high in DataServer applications, as it does in Progress applications. Unknown values always appear at the beginning of a sort, regardless of whether the field was sorted in ascending or descending order. For example, the following code displays the names of all customers with unknown customer numbers listed first:

FOR EACH customer BY cust-num:
  DISPLAY name.
END. 

NOTE: Columns that have the NOT NULL attribute cannot contain the unknown value.

Another difference in behavior between the unknown value and NULL is that ORACLE does not return rows that contain NULL unless an operation involving NULL is specified. The following query will not return rows with NULL for an ORACLE database. However, when you run it against a Progress database, the query returns all the customers whose names are not Smith, including those whose names are unknown:

FOR EACH customer WHERE name <> "smith":
  DISPLAY name.
END. 

However, although the example statement will not generate an illegal operator message, it will not necessarily generate the same results with an ORACLE database that it will with Progress database.


Copyright © 2004 Progress Software Corporation
www.progress.com
Voice: (781) 280-4000
Fax: (781) 280-4095