sql >> Databasteknik >  >> RDS >> Oracle

Kan jag i en Oracle-trigger tilldela nytt och gammalt till en rowtype-variabel?

Nej, det kan du inte. :new och :old är pseudo-poster, inte faktiska poster som du kan tilldela en lokal variabel. Om dina tabeller var baserade på objekttyper, :new och :old skulle då vara faktiska instanser av den speciella objekttypen som kan skickas runt som vilket annat objekt som helst. Men det är ganska osannolikt att det är värt att definiera dina tabeller i termer av objekt bara för att göra dina triggers lättare att skriva.

Du kan naturligtvis skriva ett PL/SQL-paket som automatiskt genererar triggerkoden du vill ha genom att göra saker som att fråga datalexikonet (dvs. all_tab_columns för att få listan över kolumner i en tabell) och med dynamisk SQL. Beroende på antalet triggers du förväntar dig att behöva skriva, kan detta vara lättare än att skriva och underhålla massor av liknande kod.



  1. Vad är det verkliga värdet av att ta in Microsoft Access i din organisation?

  2. Hur skapar jag en tillfällig tabell i SQL?

  3. Hur ansluter man till fjärrstyrd Oracle DB med PL/SQL-utvecklare?

  4. Hur lindar man PL SQL-kod i Oracle?