sql >> Databáze >  >> RDS >> Oracle

Oracle:Použití poddotazu ve spouštěči

Tento spouštěč by to udělal:

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;

Předpokládal jsem, že výběr z projektů si vždy najde řadu; pokud ne, vyvolá výjimku NO_DATA_FOUND, kterou možná budete muset zpracovat.



  1. Alfanumerický primární klíč s automatickým zvýšením MySql?

  2. Nelze nainstalovat pg gem na Mountain Lion

  3. Funkce MySQL ABS() – Vrátí absolutní hodnotu čísla

  4. Je dobrým zvykem používat ContentProvider ke zpracování databázových operací?