Nej, det kan du ikke. :new
og :old
er pseudo-poster, ikke faktiske poster, som du kan tildele til en lokal variabel. Hvis dine tabeller var baseret på objekttyper, :new
og :old
ville så være faktiske forekomster af den bestemte objekttype, der kan sendes rundt som ethvert andet objekt. Men det er temmelig usandsynligt, at det er værd at definere dine tabeller i form af objekter bare for at gøre dine triggere nemmere at skrive.
Du kan selvfølgelig skrive en PL/SQL-pakke, der automatisk genererer den triggerkode, du ønsker, ved at gøre ting som at forespørge i dataordbogen (dvs. all_tab_columns
for at få listen over kolonner i en tabel) og ved hjælp af dynamisk SQL. Afhængigt af antallet af triggere, du forventer at skulle skrive, kan dette være nemmere end at skrive og vedligeholde et væld af lignende kode.