Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Использование оператора SELECT



Пример

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 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...