sql >> Database >  >> RDS >> Oracle

Oracle:subquery gebruiken in een trigger

Deze trigger zou het doen:

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;

Ik heb aangenomen dat de select uit projecten altijd een rij zal vinden; zo niet, dan wordt er een NO_DATA_FOUND-uitzondering gegenereerd die u mogelijk moet afhandelen.



  1. MySQL-groep op aangepast tijdstempel

  2. problemen hebben met het herstellen van de versleutelde database

  3. SQL Server Error 7222:"Alleen een SQL Server-provider is toegestaan ​​op dit exemplaar"

  4. MySQL:DATETIME gebruiken als primaire sleutel