2017-08-18 17 views
0

如果用户试图用未来日期替换当前日期,我想启动触发器,但在触发器中可能不允许使用子查询。我该如何解决这个问题?任何建议....在触发器中检查未来日期

CREATE OR REPLACE TRIGGER check_join_date 
     BEFORE UPDATE OF join_date ON DOCTOR 
     FOR EACH ROW 
     WHEN (NEW.join_date > (SELECT CURRENT_DATE+1 FROM DUAL)) 
    BEGIN 
     RAISE_APPLICATION_ERROR(-20509,'Do not Enter Future Date..'); 
    END check_join_date; 
    /

我在Oracle中运行此代码后收到此错误。

ORA-02251: subquery not allowed here 

回答

3

测试这个

CREATE OR REPLACE TRIGGER check_join_date 
     BEFORE UPDATE OF join_date ON DOCTOR 
     FOR EACH ROW 
     WHEN (NEW.join_date > CURRENT_DATE+1) 
    BEGIN 
     RAISE_APPLICATION_ERROR(-20509,'Do not Enter Future Date..'); 
    END check_join_date; 
    /
+0

它的工作现在。谢谢.... :) –