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

Czy w wyzwalaczu Oracle mogę przypisać nowe i stare do zmiennej rowtype?

Nie, nie możesz. :new i :old są pseudo-rekordami, a nie rzeczywistymi rekordami, które można przypisać do zmiennej lokalnej. Jeśli twoje tabele były oparte na typach obiektów, :new i :old byłyby wtedy rzeczywistymi instancjami określonego typu obiektu, które można przekazywać jak każdy inny obiekt. Ale jest mało prawdopodobne, że warto definiować tabele w kategoriach obiektów tylko po to, aby ułatwić pisanie wyzwalaczy.

Mógłbyś oczywiście napisać pakiet PL/SQL, który automatycznie wygeneruje żądany kod wyzwalacza, wykonując takie czynności, jak wysyłanie zapytań do słownika danych (tj. all_tab_columns aby uzyskać listę kolumn w tabeli) oraz przy użyciu dynamicznego SQL. W zależności od liczby wyzwalaczy, które spodziewasz się napisać, może to być łatwiejsze niż pisanie i utrzymywanie tony podobnego kodu.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wprowadzenie do pakietów PL/SQL w bazie danych Oracle

  2. jak używać dbms_scheduler do uruchamiania zadania co 30 minut

  3. Jak wybrać kolumny z tabeli, które nie mają wartości null?

  4. Kiedy wartości kolumn indeksu Oracle są puste?

  5. Wydano SQL Developer 4.1.3