How To Define a RECORD Variable to Store a Table Row

Q

How To Define a RECORD Variable to Store a Table Row? - Oracle DBA FAQ - Working with Database Objects in PL/SQL

✍: FYIcenter.com

A

If you have a table, and want to define a RECORD variable to store all the data elements of a row from that table, you can use table_name%ROWTYPE to define the RECORD variable as shown in the following sample script:

CREATE TABLE student (id NUMBER(5) PRIMARY KEY,
  first_name VARCHAR(80) NOT NULL,
  last_name VARCHAR(80) NOT NULL);
Table created.

CREATE OR REPLACE PROCEDURE FYI_CENTER AS
  best_student student%ROWTYPE;
  another_student student%ROWTYPE;
  class_name VARCHAR2(80);
BEGIN
  class_name := 'FYI Center 2006';
  best_student.first_name := 'The';
  best_student.last_name := 'Best';
  DBMS_OUTPUT.PUT_LINE('Best student ID = ' 
    || best_student.id); 
  DBMS_OUTPUT.PUT_LINE('Best student = ' || 
    best_student.first_name || ' ' 
    || best_student.last_name);
END;
/
Best student ID = 
Best student = The Best

2007-04-27, 4647👍, 0💬