Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 检查触发器中的未来日期_Sql_Oracle_Plsql_Database Trigger - Fatal编程技术网

Sql 检查触发器中的未来日期

Sql 检查触发器中的未来日期,sql,oracle,plsql,database-trigger,Sql,Oracle,Plsql,Database Trigger,如果用户试图用未来日期替换当前日期,我想启动触发器。但触发器中可能不允许使用子查询。我如何解决这个问题?任何建议 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

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

  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
测试这个

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;
    /
测试这个

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;
    /