Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/72.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 甲骨文10g。禁止在每月最后一天删除或更新的触发器_Sql_Oracle - Fatal编程技术网

Sql 甲骨文10g。禁止在每月最后一天删除或更新的触发器

Sql 甲骨文10g。禁止在每月最后一天删除或更新的触发器,sql,oracle,Sql,Oracle,我有一个带有字段(id号、出发日期等)的“航班”表 如何编写一个触发器,禁止删除或更新“离开”日期字段=月份最后一天的行 这是我试图做的,但我得到了一个错误 CREATE OR REPLACE TRIGGER forbid_last_day_of_month BEFORE DELETE OR UPDATE ON flight FOR EACH ROW WHEN (departure = last_day(departure)) BEGIN raise_applicatio

我有一个带有字段(id号、出发日期等)的“航班”表

如何编写一个触发器,禁止删除或更新“离开”日期字段=月份最后一天的行

这是我试图做的,但我得到了一个错误

CREATE OR REPLACE TRIGGER forbid_last_day_of_month
    BEFORE DELETE OR UPDATE ON flight
    FOR EACH ROW
    WHEN (departure = last_day(departure))
BEGIN
raise_application_error(-20001, 'No data change allowed on the last day of month!'); 
END;
/
但我得到了这个错误:

ORA-04076: invalid NEW or OLD specification

:new仅在插入和更新触发器中使用

为什么要使用触发器呢

drop table t1;
create table t1 (
col1 date,
CHECK (last_day(col1) <> col1)
);
insert into t1 values (last_day(sysdate)-1);
insert into t1 values (last_day(sysdate));

WHEN(:NEW.department..)
另一个错误:ORA-25000:在trigger WHEN子句中无效使用bind变量尝试时:WHEN(:NEW.department=last_day(:NEW.department))在第二部分使用OLD。再次出现相同错误。当(:new.disease=last_day(:old.disease))开始引发应用程序错误(-20001,“不允许在月的最后一天更改数据!”)时,在删除或更新每行航班之前,创建或替换触发器禁止月的最后一天;结束/我的触发器工作正常,但由于某种原因,我在ORA-04088期间遇到一个错误:在执行触发器“系统。禁止上个月的最后一天”时出错。问题的根源是什么?如果(:new.deposition=last_day(:new.deposition))然后引发应用程序错误(-20001,“不允许在月的最后一天更改数据”),则在每行航班更新开始之前创建或替换触发器禁止月的最后一天;如果结束;结束;
SQL Error: ORA-20001: No data change allowed on the last day of month
ORA-06512: at "DBO_QBMS.t1_TR", line 3
ORA-04088: error during execution of trigger 'myschema.t1_TR'