User-defined record types and record variables v16
You can declare records based on a table definition using the %ROWTYPE
attribute, as shown in Using %ROWTYPE in record declarations. You can also define a new record structure that isn't tied to a particular table definition.
You use the TYPE IS RECORD
statement to create the definition of a record type. A record type is a definition of a record made up of one or more identifiers and their corresponding data types. You can't use a record type by itself to manipulate data.
Syntax
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
is an identifier assigned to the record type.field_name
is the identifier assigned to the field of the record type.data_type
specifies the data type offield_name
.- 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 you don't specify a default, then the default isNULL
.
A record variable or 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, you can't then use a record to hold data.
Use dot notation to reference 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.
Example
This emp_sal_query
procedure uses a user-defined record type and record variable:
Instead of specifying data type names, you can use the %TYPE
attribute for the field data types in the record type definition.
The following is the output from executing this stored procedure: