Oracle
 sql >> Baza danych >  >> RDS >> Oracle

INSERT wyzwalacz do wstawiania rekordu w tej samej tabeli

Mutacja ma miejsce za każdym razem, gdy masz wyzwalacz na poziomie wiersza, który modyfikuje tabelę, w której wyzwalasz. Problem w tym, że Oracle nie wie, jak się zachować. Wstawiasz wiersz, sam wyzwalacz wstawia wiersz do tego samego tabeli, a Oracle jest zdezorientowany, ponieważ te wstawienia do tabeli z powodu wyzwalacza, czy one również podlegają działaniu wyzwalacza?

Rozwiązaniem jest trzyetapowy proces.

1.) Poziom instrukcji przed wyzwalaczem, który tworzy instancję pakietu, który będzie śledził wstawiane wiersze.

2.) Na poziomie wiersza przed lub po wyzwalaczu, który zapisuje informacje o wierszu w zmiennych pakietu, które zostały utworzone w poprzednim kroku.

3.) Poziom instrukcji po wyzwalaczu, który wstawia do tabeli wszystkie wiersze zapisane w zmiennej pakietowej.

Przykład tego można znaleźć tutaj:

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

Mam nadzieję, że to pomoże.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak mogę połączyć ORACLE z programu EXCEL z JDBC?

  2. Oracle 11.2 Windows nie może uruchomić się z dwoma wierszami

  3. Mam problem ze zmianą rozmiaru obrazu w kolumnie blob w Oracle 12c

  4. IMPLICIT CURSOR PL/SQL FOR PĘTLI

  5. Asp Classic Connection String 500 — wewnętrzny błąd serwera