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.