y_pos NUMBER, radius NUMBER, MEMBER FUNCTION area RETURN NUMBER) ;
CREATE OR REPLACE TYPE BODY circle
MEMBER FUNCTION area RETURN NUMBER IS
BEGIN
return(3.1417*radius*radius) ;
END; END; /
DECLARE
my_circle CIRCLE;
area     NUMBER;
radius    NUMBER; BEGIN;
my_circle := circle (2,3,4);
area      := my_circle.area; -- ссылка на функцию-член
radius    := my__circle. radius; -- ссылка на записанное число DBMS_OUTPUT.PUT_LINE ( 'A circle of radius '
I I to_char(radius) I I 'has an area of '
I | to_char(area)) ; END; /
Объектные представления
Объектные представления (object views) предназначены для того, чтобы объектно-ориентированные инструментальные средства могли обращаться к чисто реляционным данным так, будто эти данные — устойчивые объекты произвольной сложности. Программе не нужно беспокоиться о том, как эти данные хранятся в базе данных, поскольку она имеет дело лишь со структурой, с помощью которой объект представлен. Объектные представления должны содействовать реализации объектно-ориентированных приложений, которые работают с чисто реляционным устойчивым хранилищем данных, хотя их использование и требует сочетания вызовов С (или C++) и встроенных вызовов (OCI). Такие вещи реализовать непросто, и корпорация Oracle разработала сервис трансляции типов объектов, Object Type Translator (ОТТ), который генерирует определения структур С и C+ + , соответствующих абстрактным типам данных. Мы опишем этот сервис в главе 5.
20
Oracle. 8