Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Рекурсия в создании таблиц  [new]
votin
Member

Откуда:
Сообщений: 20
Есть таблица Frame (Frame_Id, Frame_Name, Frame_Parent_Frame_Id). Как не трудно догадаться третье является вторичным ключом и ссылается на эту же таблицу (поле Frame_Id). Таким образом реализуется иерархическое дерево фреймов в некотором подобие экспертной системы.
Необходимо выгрузить из БД имя фрейма и имя его родителя в одном запросе (если родителя нет, т.е. данный фрейм является корнем - то вывести NULL). Если возможность реализовать такой запрос без помощи PL/SQL?
24 июн 10, 22:03    [8998435]     Ответить | Цитировать Сообщить модератору
 Re: Рекурсия в создании таблиц  [new]
Fucker
Member [заблокирован]

Откуда:
Сообщений: 1525
votin
Есть таблица Frame (Frame_Id, Frame_Name, Frame_Parent_Frame_Id). Как не трудно догадаться третье является вторичным ключом и ссылается на эту же таблицу (поле Frame_Id). Таким образом реализуется иерархическое дерево фреймов в некотором подобие экспертной системы.
Необходимо выгрузить из БД имя фрейма и имя его родителя в одном запросе (если родителя нет, т.е. данный фрейм является корнем - то вывести NULL). Если возможность реализовать такой запрос без помощи PL/SQL?
Есть
24 июн 10, 22:05    [8998448]     Ответить | Цитировать Сообщить модератору
 Re: Рекурсия в создании таблиц  [new]
votin
Member

Откуда:
Сообщений: 20
Чуть более внимательное чтение мануалов привело к нахождению решения :) извиняюсь, что задаю такие глупые вопросы :) больше так не буду!
24 июн 10, 22:12    [8998502]     Ответить | Цитировать Сообщить модератору
 Re: Рекурсия в создании таблиц  [new]
не буду
Guest
votin
больше так не буду!

Смотри у меня
24 июн 10, 22:39    [8998632]     Ответить | Цитировать Сообщить модератору
 Re: Рекурсия в создании таблиц  [new]
votin
Member

Откуда:
Сообщений: 20
Тогда вопрос по-сложнее :)
Возможно ли организовать рекурсивный вызов триггеров в Oracle?

CREATE OR REPLACE TRIGGER TRG_Test
AFTER INSERT ON Test
FOR EACH ROW

BEGIN
......
INSERT INTO Test (.....) VALUES (.......);
......
END;

Есно, получаю ошибку при попытке что-либо ввести в данную таблицу ORA-04091: таблица WORKTABLE.FRSL изменяется, триггер/функция может не заметить это!
Это в принципе не возможно (именно такая реализация) или ошибка возникает из-за некорректных данных, из-за которых возможно бесконечная вставка в эту таблицу?
Подскажите, плиз!
25 июн 10, 00:09    [8998983]     Ответить | Цитировать Сообщить модератору
 Re: Рекурсия в создании таблиц  [new]
andrey_anonymous
Member

Откуда: Москва
Сообщений: 18351
Может, сначала в FAQ?
25 июн 10, 00:13    [8998993]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить