User-Defined Record Types and Record Variables v12
Records can be declared based upon a table definition using the %ROWTYPE
attribute as shown in Using %ROWTYPE in Record Declarations. This section describes how a new record structure can be defined that is not tied to any particular table definition.
The TYPE IS RECORD
statement is used to create the definition of a record type. A record type is a definition of a record comprised of one or more identifiers and their corresponding data types. A record type cannot, by itself, be used to manipulate data.
The syntax for a TYPE IS RECORD
statement is:
Where fields
is a comma-separated list of one or more field definitions of the following form:
Where:
rec_type
rec_type
is an identifier assigned to the record type.
field_name
field_name
is the identifier assigned to the field of the record type.
data_type
data_type
specifies the data type of field_name
.
DEFAULT default_value
The DEFAULT
clause assigns a default data value for the corresponding field. The data type of the default expression must match the data type of the column. If no default is specified, then the default is NULL
.
A record variable or simply put, a record, is an instance of a record type. A record is declared from a record type. The properties of the record such as its field names and types are inherited from the record type.
The following is the syntax for a record declaration.
record
is an identifier assigned to the record variable. rectype
is the identifier of a previously defined record type. Once declared, a record can then be used to hold data.
Dot notation is used to make reference to the fields in the record.
record
is a previously declared record variable and field
is the identifier of a field belonging to the record type from which record
is defined.
The emp_sal_query
is again modified – this time using a user-defined record type and record variable.
Note that instead of specifying data type names, the %TYPE
attribute can be used for the field data types in the record type definition.
The following is the output from executing this stored procedure.