Oracle: Using subquery in a trigger

前端 未结 3 1303
梦毁少年i
梦毁少年i 2021-01-13 16:14

How can I work around the Oracle\'s limitation of not allowing subqueries in triggers.

Here\'s an example trigger I\'m trying to create, but am unable to because I c

3条回答
  •  猫巷女王i
    2021-01-13 16:54

    This trigger would do it:

    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;
    

    I have assumed that the select from projects will always find a row; if not it will raise a NO_DATA_FOUND exception that you may need to handle.

提交回复
热议问题