Oracle
 sql >> база данни >  >> RDS >> Oracle

В тригер на Oracle мога ли да присвоя ново и старо към променлива тип ред?

Не, не можеш. :new и :old са псевдозаписи, а не действителни записи, които можете да присвоите на локална променлива. Ако вашите таблици са базирани на типове обекти, :new и :old тогава ще бъдат действителни екземпляри на конкретния тип обект, които могат да бъдат предавани като всеки друг обект. Но е малко вероятно да си струва да дефинирате таблиците си по отношение на обекти, само за да улесните записването на тригерите.

Можете, разбира се, да напишете PL/SQL пакет, който автоматично генерира желания код за задействане, като правите неща като заявка към речника на данните (т.е. all_tab_columns за да получите списъка с колони в таблица) и с помощта на динамичен SQL. В зависимост от броя на тригерите, които очаквате да напишете, това може да е по-лесно от писането и поддържането на много подобен код.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да проверите базата данни на Oracle за продължителни заявки

  2. ALTER &DROP Table DDL с непосредствено изпълнение в базата данни на Oracle

  3. Декларация на Oracle, обяснена със съвети и примери

  4. Защо да използвате клауза JOIN срещу условие WHERE?

  5. Функция NCHR() в Oracle