версиях Oracle8 объектные типы назывались
В бета- версиях Oracle8 объектные типы назывались "абстрактными
типами данных" (термин, используемый в проектах SQL3 и в
академических кругах), но позже было решено, что термин
"объектные типы" является более понятным и точным. (На самом
деле, объектные типы Oracle8 представляют собой обобщение
именованных типов строк и абстрактных типов данных SQL3.)
В объектных типах могут определяться методы, реализация которых
может быть представлена на PL/SQL или в виде вызовов функций 3GL.
Методы похожи на хранимые процедуры и могут вызываться из SQL или
PL/SQL для вычисления и получения информации об объектах данного
типа и/или их модификации. Каждый объектный тип имеет по меньшей
мере один метод - конструктор. Это определенная в системе
функция, которая создает объект данного типа. В дополнение к
общим методам, при необходимости могут быть реализованы
специальные методы, меняющие для объектного типа порядок
сортировки и операции сравнения.
Объектные типы можно использовать двумя способами. Во-первых,
с использованием объектного типа можно определить объектные
таблицы, специфицируя тип таблицы целиком:
CREATE TABLE customers OF customer_type
В этом примере каждая строка результирующей таблицы будет
содержать объект типа customer_type с членами-атрибутами,
специфицированными при объявлении этого объектного типа (другими
словами, "name" и "no_of_purchases"). К каждой строке-объекту
Oracle8 добавляет "скрытый" столбец, содержащий генерируемый
системой уникальный идентификатор (ID) объекта. Этот ID можно
использовать в указателях (REF) на объекты таблицы из других
таблиц или реализовывать указатели между объектами этой же
таблицы. При желании столбец ID можно индексировать для более
быстрого поиска REF.
Во-вторых, объектные типы можно использовать для определения
типов столбцов. В этом случае при определении типов столбцов
таблицы имена объектных типов помещаются вместо имен базовых
типов. Например, объявленный выше тип customer_type можно было бы
Содержание Назад Вперед