В PL/SQL для базовых типов поддерживается множество общих подтипов (см. таблицу 2). Кроме того, в блоке программы PL/SQL можно объявить подтипы, определяемые пользователями, с целью установления домена приемлемых значений для переменной.
declare
varchar2_50 varchar2(50);
subtype description is Varchar2_50;
current_description description default 'Unknown';
В этом примере показано, что в программе нельзя прямо объявлять ограниченные подтипы. Вместо этого, для создания ограниченного подтипа необходимо вначале объявить ограниченную переменную (varchar2_50), а затем ограниченный подтип (description).
Составные типы, определяемые пользователями
PL/SQL позволяет создавать в программах составные типы, определяемые пользователями, а затем объявлять переменные и константы с применением этих новых типов. Переменная, объявленная с составным типом, представляет собой совокупность различных компонентов, каждым из которых можно управлять отдельно. Например, в программе при работе с переменной, имеющей тип записи, можно обновить единственное поле, не обновляя остальные поля.
ЗАПИСИ
Тип записи (record type) — это группа связанных полей, каждое из которых имеет свои собственные имя и тип данных. Тип записи обычно используется в программах PL/SQL для создания переменных, соответствующих всем столбцам таблицы или их подмножеству. Например, в следующем фрагменте программы тип записи, определяемый пользователем, объявляется для соответствия атрибутам таблицы базы данных, а затем с применением нового типа объявляется переменная.
declare
tуре part_record is record (id integer,
unit_price number(10,2),
description varchar2(200));
current_part part_record;