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

Oracle:Използване на подзаявка в тригер

Този тригер ще го направи:

CREATE OR REPLACE TRIGGER trigger_w_subquery
AFTER UPDATE OR INSERT ON project_archiving
FOR EACH ROW WHEN (old.archiving_status <> new.archiving_status
  AND new.archiving_status = 1
)
DECLARE
  l_offer projects.offer%TYPE;
BEGIN
  SELECT offer INTO l_offer 
  FROM projects 
  WHERE projnum = :new.projnum;

  IF l_offer IS NULL THEN
    INSERT INTO offer_log (offer, status, date)
    VALUES (null, 9, sysdate);
  END IF;
END;

Предположих, че изберете от проекти винаги ще намира ред; ако не, ще предизвика изключение NO_DATA_FOUND, което може да се наложи да обработите.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. HEXTORAW() Функция в Oracle

  2. Oracle SQL - Генериране на обобщени редове за определени редове с помощта на select

  3. Използване на Types.NVARCHAR с JDBC драйвер на oracle за работа с кирилица

  4. Docker Oracle Instant Client

  5. Какво е Oracle Database?