Oracle
 sql >> Baza danych >  >> RDS >> Oracle

PLSQL :NOWY i :STARY

Zwykle używasz terminów w wyzwalaczu za pomocą :old odwoływać się do starej wartości i :new aby odwołać się do nowej wartości.

Oto przykład z dokumentacji Oracle, do której link znajduje się powyżej

CREATE OR REPLACE TRIGGER Print_salary_changes
  BEFORE DELETE OR INSERT OR UPDATE ON Emp_tab
  FOR EACH ROW
WHEN (new.Empno > 0)
DECLARE
    sal_diff number;
BEGIN
    sal_diff  := :new.sal  - :old.sal;
    dbms_output.put('Old salary: ' || :old.sal);
    dbms_output.put('  New salary: ' || :new.sal);
    dbms_output.put_line('  Difference ' || sal_diff);
END;

W tym przykładzie wyzwalacz uruchamia BEFORE DELETE OR INSERT OR UPDATE :old.sal będzie zawierać pensję przed uruchomieniem wyzwalacza i :new.sal będzie zawierać nową wartość.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak wstawić ciąg zawierający &

  2. ORA-24408:nie można wygenerować unikalnej nazwy grupy serwerów

  3. Jak uzyskać BLOB z pliku w PL/SQL?

  4. Siatki bezpieczeństwa

  5. Jak utworzyć funkcję PL/SQL w bazie danych Oracle