Структурированные UDT-типы могут быть созданы следующим способом:
/* Создаем UDT-тип MusicCDudt */ | |
CREATE TYPE MusicCDudt AS | |
/* Задаем атрибуты */ | |
Title | CHAR(40), |
Cost | DECIMAL(9,2), |
SuggestedPrice | DECIMAL(9,2), |
/* Разрешаем подтипы */ | |
NOT FINAL ; | |
CREATE TYPE RockCDUdt UNDER MusicCDudt NOT FINAL ; |
Подтип RockCDudt наследует атрибуты своего супертипа MusicCDudt.
CREATE TYPE HeavyMetalCDudt UNDER RockCDUdt FINAL ;
Создадим таблицы, использующие эти типы. Например:
CREATE TABLE METALSKU ( | |
Album | HeavyMetalCDudt, |
SKU | INTEGER ) ; |
Теперь можно добавить строки в новую таблицу:
BEGIN
/* Объявляем временную переменную 'a' */
DECLARE a = HeavyMetalCDudt ;
/* Выполняем функцию-конструктор */
SET a = HeavyMetalCDudt () ;
/* Выполняем первую функцию-мутатор */
SET a = a.title('Edward the Great') ;
/* Выполняем вторую функцию-мутатор */
SET a = a.cost(7.50) ;
/* Выполняем третью функцию-мутатор */
SET a = a.suggestedprice(15/99) ;
INSERT INTO METALSKU VALUES (a, 31415926) ;
END