Ne, nemůžeš. :new
a :old
jsou pseudozáznamy, nikoli skutečné záznamy, které můžete přiřadit lokální proměnné. Pokud byly vaše tabulky založeny na typech objektů, :new
a :old
by pak byly skutečnými instancemi konkrétního typu objektu, které lze předat jako jakýkoli jiný objekt. Ale je dost nepravděpodobné, že by stálo za to definovat tabulky jako objekty jen proto, aby se vaše spouštěče snadněji zapisovaly.
Můžete samozřejmě napsat balíček PL/SQL, který automaticky vygeneruje požadovaný spouštěcí kód tím, že uděláte věci, jako je dotazování datového slovníku (tj. all_tab_columns
získat seznam sloupců v tabulce) a pomocí dynamického SQL. V závislosti na počtu spouštěčů, které očekáváte, že budete muset napsat, to může být snazší než psát a udržovat spoustu podobného kódu.