HELP (TRIGGERS & PROCEDURES)
Релиб
Форумы       Участники    Календарь    Кто он-лайн?
Добро пожаловать, гость ( Вход | Регистрация )
        



HELP (TRIGGERS & PROCEDURES) Expand / Collapse
Автор
Сообщение
30.11.2001 4:02
новичок

новичокновичокновичокновичокновичокновичокновичокновичок

участник
Last Login: 30.01.2002 2:40
Сообщ.: 1, Visits: 12
Написал хранимую процедуру, с использованием курсора, которая обновляет записи дочерней таблицы, согласно данным полученным от главной.
Написал триггер AFTER UPDATE FOR EACH ROW, кот. вызывает для каждой измененной строки ту самую процедуру.
не работает. Oracle пишет, что в ходе выполнения триггера произошли ошибки: данные были обновлены, а процедура их не видит.
Если запускать процедуру из SQL* Plus, то она корректно срабатывает, а если ее запускает триггер - то нет.
Помогите разобраться в чем дело ???
Сообщ. #735054
03.12.2001 1:04
новичок

новичокновичокновичокновичокновичокновичокновичокновичок

участник
Last Login: 11.12.2001 21:43
Сообщ.: 3, Visits: 34
Посмотри, нет ли в тригере или в процедуре команды commit
Сообщ. #735308
14.12.2001 15:27
новичок

новичокновичокновичокновичокновичокновичокновичокновичок

участник
Last Login: 14.12.2001 15:18
Сообщ.: 1, Visits: 12
Не мучай себя, в триггер commit никогда не запихнешь!
Прочитай главу "Триггеры по изменяемым таблицам" в документации на Oracle (серые книжки). PL/SQL Ref. по-моему называется. Там все это есть.
Ну суть там такая:
1. Создаешь свой пакет package... - Если его нет.
2. Создаешь в нем PL/SQL таблицу и переменную - счетчик строк в данной таблице. (прочитаешь, что такое PL/SQL таблица - поймешь - зачем переменная)
3. Заполняешь эту таблицу по TR_BEF_INS_FOR_EACH_ROW кидаешь туда id master table.
4. Читаешь из своей PL/SQL таблицы записи по одной и обрабатываешь записи в детальной таблице.

Удачи. Кстати, книжка эта очень хорошая - советую купить...
Сообщ. #736635
« пред. тема | след. тема »


Эту тему читают Expand / Collapse
Посетители: 0 (0 гостей, 0 участников, 0 скрыт.участников)
Сейчас нет участников, просматривающих тему.
Модераторы: Alexey, boombastik, bazile, pl

Время GMT +3:00, Сейчас 11:35