Nein, das kannst du nicht. :new
und :old
sind Pseudodatensätze, keine tatsächlichen Datensätze, die Sie einer lokalen Variablen zuweisen können. Wenn Ihre Tabellen auf Objekttypen basieren, :new
und :old
wären dann tatsächliche Instanzen des bestimmten Objekttyps, die wie jedes andere Objekt herumgereicht werden können. Aber es ist ziemlich unwahrscheinlich, dass es sich lohnt, Ihre Tabellen in Form von Objekten zu definieren, nur um das Schreiben Ihrer Trigger zu vereinfachen.
Sie könnten natürlich ein PL/SQL-Paket schreiben, das automatisch den gewünschten Triggercode generiert, indem Sie beispielsweise das Datenwörterbuch abfragen (d. h. all_tab_columns
um die Liste der Spalten in einer Tabelle zu erhalten) und mit dynamischem SQL. Abhängig von der Anzahl der Trigger, die Sie voraussichtlich schreiben müssen, kann dies einfacher sein, als eine Menge ähnlichen Codes zu schreiben und zu verwalten.