Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Пример
SELECT n.rn.num INTO my_num FROM number n …;
rn – имя поля, num – имя атрибута, my_num – переменная, в которую помещается значение атрибута, number – имя таблицы, n – переменная типа данного объекта (создается автоматически). Сначала объект помещается в некоторую область памяти (n), которая связана с содержимым таблицы number.
Пример
CREATE TYPE Person AS OBJECT (
first_name varchar2(15),
last_name varchar2(15),
birthday DATE,
home_address Address,
phone_number varchar2(15));
/
CREATE TABLE Persons OF Person; - на базе объекта Person создаем таблицу
…
BEGIN
INSERT INTO employees
SELECT * FROM persons p WHERE p.last_name LIKE '%smith'
…
Пример использование оператора VALUE
INSERT INTO employess
SELECT VALUE (p) FROM persons p WHERE p.last_name LIKE '%smith';
Пример использование оператора VALUE
DECLARE
p1:person;
p2:person;
BEGIN
SELECT VALUE(p) INTO p1 from person p WHERE p.last_name='Kroll';
p2:=p1;
END;
Использование оператора REF
Оператор REF возвращает ссылки на объекты. Его использование подобно оператору VALUE.
Пример
Таблица person_ers будет содержать ссылки на объекты таблицы persons.
INSERT person_refs
SELECT REF(p) FROM persons p WHERE p.last_name LIKE '%smith';
Пример
DECLARE
p_ref REF PERSON;
my_last_name varchar2(15);
BEGIN
SELECT REF(p) INTO p_ref FROM persons p
WHERE p.last_name=my_last_name; - выбрали указатель на объект,
следующий за last_name=my_last_name
UPDATE person p SET p=Person('Jill','Anders','11-Nov-67',…) WHERE REF(p)=p_ref;
…
END;
Для того чтобы проверить существует объект или нет, нужно использовать специальную конструкцию IS DANGING.
Пример
BEGIN
…
UPDATE department SET manager=NULL WHERE manager IS DANGING;
END;
Использование оператора DEREF
Оператор DEREF - обратный оператору REF:
DECLARE
p1 Person;
p_ref REF Person;
name varchar2(15);
BEGIN
SELECT DEREF (p_ref) INTO p1 FROM dual;
name:=p1.last_name;
END;
Оператор DEREF нельзя применять как процедурную запись: p1:=DEREF(p_ref).
Правильный синтаксис при использовании ссылок:
Дата публикования: 2015-02-18; Прочитано: 194 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!