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

Откуда:
Сообщений: 19
Итак ситуация,

Имеются две таблицы
А:
id_a
price
status_a
d_off (деактуализация записи)

и

Б:
id_b
status_b

При изменениях (update, insert, delete) в таблице А - происходят изменения (update) в таблице Б.
Работает Package В, который вызывается тригером Д!
В Package есть процедура, которая делает SELECT т.е. выбирает из таблицы А сумму статусов... SUMM(STATUS_A) ..., c условием D_OFF is null, а затем в зависимости от суммы статусов делает UPDATE поля STATUS_B таблицы Б.

Итак, есть обычный update, который никак не связан с выше указанными процами, тригерами и т.д. Он просто делает Update полю D_OFF = sysdate! Вот тут и появляется ошибка! ORA-01403 - нет данных! И ругается на триггег и пакет! Как я понимаю, мы не можем выбирать запись, которую обновляем! А точнее, мы не можем указывать условие WHERE D_OFF IS NULL одновременно присваивая записи D_OFF = sysdate!
Так у меня вопрос: как мне обойти эту ситуацию? Мне необходимо, чтобы триггер выполнялся! Все работает если закоментить условие WHERE D_OFF IS NULL... но это условие мне просто необходимо!

Заранее спасибо.
13 ноя 08, 12:32    [6434149]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка ORA-01403 в Package при отработке триггера на update  [new]
andrey_anonymous
Member

Откуда: Москва
Сообщений: 18399
Сделайте view (или mview).
1403 возникает исключительно в случае работы по select INTO, когда этот into не возвращает записей.
Написать такой триггер возможно, но для этого надо много лучше владеть инструментом.
Самое смешное, что если Вы таки разберетесь в том, как это сделать, то само желание написать такой триггер Вас оставит в покое, поскольку для этой задачи есть более подходящие средства ;)
13 ноя 08, 12:48    [6434272]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка ORA-01403 в Package при отработке триггера на update  [new]
senyOr
Member

Откуда:
Сообщений: 19
Хм. В, принципе, знаком нормально. Но еще в начинающих.
Посему, объясните плз, что такое mview и как с ним бороться?
Спасибо.
13 ноя 08, 12:57    [6434350]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка ORA-01403 в Package при отработке триггера на update  [new]
alecsey
Member

Откуда: Москва
Сообщений: 830
страно логичнее было бы ожидать ошибку мутации
13 ноя 08, 12:59    [6434368]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка ORA-01403 в Package при отработке триггера на update  [new]
senyOr
Member

Откуда:
Сообщений: 19
Скорее всего так и было.
Решил проблему - поставил 'FOR EACH ROW' в тригере.
Ошибки больше не возникало.
Всем спасибо.
13 ноя 08, 13:06    [6434432]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить