A record selection expression is used to select a record in the database. It can be used in a FETCH or FIND statement. The record thus selected becomes the current record of the run unit upon which subsequent statements may operate when accessing the database.
1 – 1format_database_key_identifier_access
This format selects a record by a database key value held by the Database Control System (DBCS) in a currency indicator or a keeplist entry. Format 1 - Database Key Identifier Access database-key-identifier
1.1 – database-key-identifier
identifies a record according to the rules of Database Key Identifiers.
2 – 2format_set_owner_access
This format selects the record that owns a set. Format 2 - Set Owner Access OWNER WITHIN set-name
2.1 – set-name
is a subschema set name. The Database Control System (DBCS) uses the currency indicator for set-name to choose the owner record of that set occurrence. A database exception condition occurs if set-name is a singular set (DB-CONDITION is set to DBM$_SINGTYP) or if the currency indicator for the set type is null (DB-CONDITION is set to DBM$_CSTYP_NULL).
3 – 3format_record_search_access
This format selects a record by its position within a collection of
records and optionally by its record type and contents.
Format 3 - Record Search Access
{ FIRST }
{ LAST }
{ NEXT }
{ PRIOR }
{ ANY }
{ DUPLICATE }
{ [ RELATIVE ] int-exp }
[record-name] [ WITHIN { realm-name } ] [ USING { rec-key } ... ]
[ { set-name } ] [ WHERE { bool-expres } ]
3.1 – int-exp
is an integer or arithmetic expression resulting in a longword integer value. It cannot be zero.
3.2 – realm-name
is a subschema realm name.
3.3 – record-name
is a subschema record name.
3.4 – set-name
is a subschema set name.
3.5 – rec-key
is a key data item within the subschema record occurrence. The same rec-key can appear only once in a given USING phrase.
3.6 – bool-expres
is a conditional expression that involves data items of the object
record. It is used to specify additional requirements of a
qualifying record.
bool-expres:
{ bool-alt [ OR bool-alt ] ... }
bool-alt:
{ simp-bool-rel [ AND simp-bool-rel ] ... }
simp-bool-rel:
{ bool-condit }
{ NOT bool-expres }
bool-condit:
{ { {[ NOT ] EQUAL TO } } }
{ { {[ NOT ] = } } }
{ { {[ NOT ] LESS THAN } } }
{ { IS {[ NOT ] < } } }
{ { {[ NOT ] GREATER THAN } } }
{ { {[ NOT ] > } } }
{ { id } { { GREATER THAN OR EQUAL TO } } { id } }
{ { lit } { { >= } } { lit } }
{ { { LESS THAN OR EQUAL TO } } }
{ { { <= } } }
{ { DOES {[ NOT ] CONTAIN } } }
{ { {[ NOT ] CONTAINS } } }
{ { {[ NOT ] MATCH } } }
{ { {[ NOT ] MATCHES } } }
3.6.1 – bool-alt
is one or more sub-expressions (simp-bool-rel). Pairs of sub-expressions are joined by the logical operator AND.
3.6.2 – simp-bool-rel
is a simple-condition (bool-condit), an expression, or the negation of either.
3.6.3 – bool-condit
a simple-condition is a relation involving two operands joined by a relational operator. At least one operand in each relation must be an item in the record being found or fetched.
4 – 4format_database_key_access
This format selects the record that is referred to by the database
key value contained in the special register DB-KEY.
Format 4 - Database Key Access
DBKEY