В программах PL/SQL можно использовать атрибуты %TYPE и %ROWTYPE для того, чтобы объявлять переменные, константы и даже определяемые пользователями подтипы и составные типы, соответствующие свойствам столбцов и таблиц баз данных, или другие программные конструкции. Использование атрибутов не только упрощает объявление программных конструкций, но и делает программы более удобными для модификации баз данных. Например, после того как администратор модифицирует таблицу и добавляет новый столбец, переменная типа записи, объявленная с атрибутом %ROWTYPE, в процессе работы автоматически регулируется и учитывает новый столбец. Ниже атрибуты %TYPE и %ROWTYPE рассмотрены более подробно.
%TYPE
При объявлении программных конструкций PL/SQL можно применять атрибут %TYPE. С его помощью в процессе выполнения программы можно использовать тип данных, принадлежащий другой программной конструкции или столбцу таблицы базы данных. Например, в следующем фрагменте программы показано использование атрибута %TYPE для ссылки на столбцы таблицы SALES.PARTS при объявлении типа PART_RECORD.
declare
type part_record is record (
/*ОБЪЯВЛЕНИЕ ПОЛЯ ЗАПИСИ ИДЕНТИЧНОГО ПО ТИПУ ДАННЫХ СО СТОЛБЦОМ ID ТАБЛИЦЫ PARTS СХЕМЫ SALES */
id sales.parts.id %type,
unit_price sales.parts.unit_price %type,
description sales.parts.description %type)
current_part part_record;
%ROWTYPE
В программах PL/SQL удобно пользоваться атрибутом %ROWTYPE для того, чтобы в процессе выполнения программы объявлять переменные, имеющие тип записи, и другие конструкции Например, в следующем фрагменте программы показано, как использование атрибута %ROWTYPE может упростить объявление вложенной таблицы CURRENT_PARTS_TABLE.
declare
type parts_table is table of sales.parts %rowtype;
current_parts_table parts_table;