%ROWTYPE атрибут Oracle PL/SQL

В этом учебном материале вы узнаете, как использовать атрибут %ROWTYPE в Oracle PL/SQL с синтаксисом и примерами.

Описание

В Oracle PL/SQL атрибут %ROWTYPE предоставляет тип записи, представляющий строку в таблице (или представлении) базы данных Oracle. Запись может хранить целую строку данных, выбранных из таблицы, или извлекаться из курсора или строго типизированной переменной курсора.

Синтаксис

Синтаксис объявления переменной с атрибутом %ROWTYPE в Oracle PL/SQL:

v_rec table_name%ROWTYPE

Параметры или аргументы

v_rec - имя переменной которой присваивается значение записи
table_name – имя таблицы базы данных

Примечание

  • Столбцы в строке и соответствующие поля в записи имеют одинаковые имена и типы данных.
  • Поля в записи %ROWTYPE не наследуют ограничение столбца NOT NULL.

Пример

Рассмотрим пример Oracle, чтобы понять, как применять %ROWTYPE в Oracle PL/SQL.
Например:

В этом примере Oracle PL/SQL мы объявили переменную emp_rec основанную на записи таблицы employees. Также мы объявили переменную join_rec основанную на записи курсора c2 созданного из полей таблиц employees и departments.

Пример с совокупным присвоением

Рассмотри пример, который показывает, как присвоить значения всем полям в одной записи одновременно. Вы можете присвоить одну запись другой, если их объявления относятся к одной и той же таблице или курсору. Например, разрешено следующее присвоение:

В этом примере Oracle PL/SQL мы объявили переменные dept_rec1, dept_rec2 основанные на записи таблицы departments. Также мы объявили курсор c1 содержащий поля department_id, location_id таблицы departments. Т.к. таблица departments представлена в базе данных полями department_id, department_name, manager_id, location_id, то присвоение dept_rec2 := dept_rec3 недопустимо.
Следующий пример показывает, как присвоить список значений столбцов записи с помощью инструкции SELECT.

В этом примере переменной dept_rec присваивается значение записи из таблицы departments со значением department_id равным 30.