Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Gatilho INSERT para inserir registro na mesma tabela


A mutação acontece sempre que você tem um gatilho em nível de linha que modifica a tabela na qual você está acionando. O problema é que a Oracle não sabe como se comportar. Você insere uma linha, o próprio gatilho insere uma linha no mesmo table, e o Oracle fica confuso, porque, essas inserções na tabela devido ao gatilho, elas também estão sujeitas à ação do gatilho?

A solução é um processo de três etapas.

1.) Nível de instrução antes do gatilho que instancia um pacote que acompanhará as linhas que estão sendo inseridas.

2.) Nível de linha antes ou depois do gatilho que salva essas informações de linha nas variáveis ​​do pacote que foram instanciadas na etapa anterior.

3.) Nível de instrução após o gatilho que insere na tabela, todas as linhas que são salvas na variável do pacote.

Um exemplo disso pode ser encontrado aqui:

http://asktom.oracle.com/pls/asktom/ASKTOM .download_file?p_file=6551198119097816936

Espero que ajude.