FINAL MEMBER FUNCTION Age
RETURN NUMBER -- не переопределяется
) NOT FINAL; -- может иметь подтипы
Возможные подтипы:
CREATE TYPE Student UNDER Person
(deptid NUMBER, major
VARCHAR2(30)); -- добавление атрибутов
CREATE TYPE Employee UNDER Person
(empid NUMBER, mgr
VARCHAR2(30))
NOT FINAL;
CREATE TYPE PartTimeEmployee UNDER Employee
(numhours NUMBER);
Вводится и понятие абстрактных (not-instantiable)
типов и методов. Разработчик может создавать подтипы таких типов, но не может
создавать экземпляры таких типов.
PL/SQL-пакеты можно компилировать в виде разделяемых
библиотек. Это устраняет накладные расходы на интерпретацию PL/SQL-кода, что
может привести к ускорению выполнения в 2-10 раз. Так что теперь желающие
смогут писать функции вычисления интегралов на PL/SQL, не жертвуя при этом
производительностью. Конечно, если PL/SQL-программы интенсивно работают с базой
данных, значительного выигрыша от компиляции PL/SQL получить не удастся.
В SQL и PL/SQL появились новые типы данных. Особенно
оригинален тип AnyData. В столбце этого типа в каждой строке могут храниться
данные разных типов (в одной строке – символьные, в другой – числовые, в
третьей – структура из двух бинарных и трех числовых полей). Описание типа
данных в поле каждой конкретной строки хранится в самом поле. Доступ к данным
такого типа пока возможен только через OCI.
Менее оригинальны, но не менее полезны новые типы для
даты и времени. Во-первых, тип TimeStamp дает возможность хранить в базе данных
дату с точностью до долей секунды (до 9 знаков после запятой). Во-вторых, тип
TimeStamp with Time Zone вместе с датой хранит код часового пояса. Сравнение
данных этого типа осуществляется с учетом часового пояса. Это очень облегчает
работу с распределенными системами и репликацией. Кстати, список стандартных
часовых поясов в Oracle9i охватывает весь земной шар. Введены и два принципиально
новых типа данных для хранения интервалов времени, не привязанных к конкретной
дате – INTERVAL DAY TO SECOND и INTERVAL YEAR TO MONTH. Используя эти типы, удобно задавать, например, продолжительность испытательного срока при приеме на
работу:
Create table Jobs(job varchar2(9), trial_period INTERVAL YEAR TO
MONTH);
insert into Jobs -- испытательный срок
values ('MANAGER','1-6') --
для менеджера – полтора года;
select ename, hiredate,
hiredate + trial_period -- и когда же он закончится?
Рекомендуем скачать другие рефераты по теме: налоги в россии, сочинение.