This way, when and if the SELECT list of the cursor changes, the number and type of fields in the record will change accordingly and everything will stay in sync.
Code Listing 1: Insert of a single row with each column specified DECLARE l_employee_id omag_employees.employee_id%TYPE := 500; l_last_name omag_employees.last_name%TYPE := ' Mondrian'; l_salary omag_employees.salary%TYPE := 2000; BEGIN INSERT INTO omag_employees (employee_id, last_name, salary) VALUES ( l_employee_id, l_last_name, l_salary); END; To perform a record-level insert, simply leave off the parentheses around the record in the VALUES clause.
Listing 1 demonstrates an insert of a single row into the omag_employees table that specifies each column individually.
The following block uses a cursor FOR loop to fetch only the last name of each employee, deposit that name into a record, and then display the value of the last_name field of that record: Passing Records as Parameters You can define parameters based on record types, and you can therefore pass records as arguments to subprograms.
Suppose I need to write a procedure that displays an employee.
You can also, however, assign values directly to individual fields or even to the record as a whole by using the PL/SQL assignment operator (:=).