SYSTEM.RECORD_STATUS
SYSTEM.RECORD_STATUS represents the status of the record where the cursor is located. The value can be one of four character strings:
CHANGED |
Indicates that a queried record's validation status is Changed. |
INSERT |
Indicates that the record's validation status is Changed and that the record does not exist in the database. |
NEW |
Indicates that the record's validation status is New. |
QUERY |
Indicates that the record's validation status is Valid and that it was retrieved from the database. |
Both SYSTEM.RECORD_STATUS and the GET_RECORD_PROPERTY Built-in return the status of a record in a given block, and in most cases, they return the same status. However, there are specific cases in which the results may differ.
SYSTEM.RECORD_STATUS can in certain cases return a value of NULL, because SYSTEM.RECORD_STATUS is undefined when there is no current record in the system. For example, in a When-Clear-Block trigger, Oracle Forms is at the block level in its processing sequence, so there is no current record to report on, and the value of SYSTEM.RECORD_STATUS is NULL.
GET_RECORD_PROPERTY, on the other hand, always has a value of NEW, CHANGED, QUERY, or INSERT, because it returns the status of a specific record without regard to the processing sequence or whether the record is the current record.
Assume that you want to create a trigger that performs a commit before clearing a Changed record. The following Key-CLRREC trigger performs this function.
IF :System.Record_Status IN ('CHANGED', 'INSERT') THEN
Commit_Form;
END IF;
Clear_Record;