2016-01-11 75 views
0
create or replace trigger emp_trig 
before insert or update of salary on emp 
for each row 
when `REGEXP_LIKE(:new.job_id, 'ac*','i')` -- Here 

    BEGIN 
     IF inserting then 
      :new.commission_pct := 0.20; 
     elsif (:old.commission_pct is null) then 
      :new.commission_pct := 0.1; 
     END IF; 
    END; 
+0

請使用代碼問一個問題,當格式化 - 這使得它更清晰的人能夠快速查看和了解你的代碼和問題。 – Erica

回答

0

嘿。如果你正在嘗試做一個簡單的比賽,那就避免使用Regular 表達式。取而代之的是LIKE和你的測試條件。在 下面的代碼片段舉例說明了一個足以滿足您的要求的簡單示例。希望 它有助於

CREATE OR REPLACE TRIGGER emp_trig before 
    INSERT OR 
    UPDATE OF sal ON emp FOR EACH row 
    WHEN (new.job LIKE '%TEST%') 
    DECLARE 
    BEGIN 
    IF inserting THEN 
    :new.comm := 0.20; 
    elsif (:old.comm      IS NULL) THEN 
    :new.comm       := 0.1; 
    END IF; 
    END; 
1
create or replace trigger emp_trig 
before insert or update of salary on emp 
for each row 
when (REGEXP_LIKE(new.job_id, 'ac*','i')) 
BEGIN 
IF inserting then 
    :new.commission_pct := 0.20; 
elsif (:old.commission_pct is null) then 
    :new.commission_pct := 0.1; 
END IF; 
END; 
/
+0

是的,我解決了它。感謝大家........ –