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

Откуда: Екатеринбург
Сообщений: 101
Написал тригер на таблицу.

create or replace trigger TRW_RLPRICESPECS_BINSERT
before insert on rlpricespecs
for each row

declare
ntarif number;
ncompany number;
begin
select r.tarif, r.company into ntarif, ncompany from rlprices r where r.rn=:new.prn;
insert into tw_reassessment_log t
(t.rn, t.authid, t.old_price, t.new_price, t.date_change_price, t.nmodif, t.ntarif, t.company)
values
(gen_id, user, :old.price, :new.price, sysdate, :new.nommodif, ntarif, ncompany);

end TRW_RLPRICESPECS_BINSERT;

Пишет Mutating

а когда убираю
select r.tarif, r.company into ntarif, ncompany from rlprices r where r.rn=:new.prn;
то все работает. Только тариф не пишется в таблицу.
31 мар 06, 09:56    [2509705]     Ответить | Цитировать Сообщить модератору
 Re: Как избежать Mutating table.  [new]
aZm
Member

Откуда: 3й рим
Сообщений: 2355
вариантов у вас два:
1. не селектить в before trigger данные, которые изменяются (смена логики работы приложения)
2. обойти мутацию (см фак и топ на форуме)
---
No Pity. No Mercy. No Regret.
31 мар 06, 10:07    [2509757]     Ответить | Цитировать Сообщить модератору
 Re: Как избежать Mutating table.  [new]
_spy_
Member

Откуда: Москва
Сообщений: 826
Мутирование таблиц
31 мар 06, 10:08    [2509763]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить