Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
RBD_END.DOC
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
548.35 Кб
Скачать

Вставка объектов

Существует две основных формы вставки объектов:

  1. Определяют и вставляют все атрибуты, которые есть у объекта persons.

BEGIN

INSERT INTO persons values ('Jenifer', 'Lapidus',…);

  1. С использованием конструктора

INSERT INTO persons values (Person ('Jenifer', 'Lapidus',…));

Модификация оператора INSERT.

В операторе INSERT появилась возможность возвращать в локальную переменную ссылку на объект в таблице, т.е. после вставки объекта можно какой-то локальной переменной присвоить ссылку на объект.

Пример

DECLARE

p1_ref REF person,

p2_ref REF person,

BEGIN

INSERT INTO persons p VALUES (Person ('Paul','Chang', …))

RETURNING ref(p) INTO p1_ref;

INSERT INTO persons2

SELECT VALUES (p) FROM persons p

WHERE p.last_name LIKE '%Jones'; - в таблицу persons2 копируются все записи таблицы persons, у которых атрибут last_name подобен Jones.

Еще одна особенность вставок:

CREATE TABLE department (

Dept_name varchar2(20),

Manager person,

Location varchar2(20));

/

Запись в такую таблицу вставляется следующим образом:

INSERT INTO department

VALUES (‘payroll’,person (‘Alan’,’Tsai’,…),’Los Angeles’);

В отличие от предыдущей ситуации, где можно вернуть указатель на объект, здесь этого сделать нельзя, т.к. можно вернуть только указатель на всю строку ROWID, а не указатель на поле.

Обновление объектов

Пример:

BEGIN

UPDATE persons p SET p.home_address.street=’341 Oakdene Ave’

WHERE p.last_name=’Brody’;

UPDATE persons p SET p=Person(‘Beth’,’Steinberg’,…)

WHERE p.last_name=’Steinway’;

END;

Удаление объектов

Пример:

BEGIN

DELETE from persons p

WHERE p.home_address.street=’108 Palm Dr’;

END;

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]