Oracle: Mutating table trigger error megelőzése
Adatbázisokkal kapcsolatos cikkek / Oracle (1704 katt)
Ha Oracle-ben egy olyan triggert készítünk (például adatellenőrzés céljából), amely az éppen változtatás alatt álló táblát próbálja meg lekérdezni, akkor az ORA-04091: ... tábla változtatás alatt áll, trigger/funkció számára nem látható hibaüzenetet kapjuk.
Ezt a problémát - legalábbis részlegesen - úgy lehet megoldani, ha a trigger declare szekciójába beírjuk az alábbiakat (azaz autonóm tranzakciót használunk):
declare
pragma autonomous_transaction;
A trigger ebben az esetben a táblából a már véglegesített (commit) adatokat fogja látni. Más szóval azokat a változtatásokat nem látjuk, amelyeket a triggert kiváltó tranzakció okozott.
A megoldásra ebben a könyvben találtam rá:
Steven Feuerstein: Oracle PL/SQL Programming, 454.o-461.o.
Előző oldal | Kapitány |