Oracle触发器不允许在表上插入

“插入后” oracle触发器将停止满足特定条件的所有插入。触发器正在检查“ CLASS_TIME”列,如果它小于上午9点或大于下午6点,则更新插入的行。但是该行未完全插入,因此无法更新同一行。下面是触发代码

create or replace TRIGGER ENFORCE_CLASS_TIMINGS 
AFTER INSERT ON SYSTEM.TUTPRAC 
REFERENCING OLD AS OLD1 NEW AS NEW1
FOR EACH ROW
WHEN ( 
  to_number(to_char(to_date(NEW1.CLASS_TIME,'hh24:mi'),'sssss')) < 
    to_number(to_char(to_date('09:00', 'hh24:mi'), 'sssss')) OR
  to_number(to_char(to_date(NEW1.CLASS_TIME,'hh24:mi'),'sssss')) > 
    to_number(to_char(to_date('18:00', 'hh24:mi'), 'sssss')))

BEGIN

  UPDATE SYSTEM.TUTPRAC
    SET STAFFNO = NULL
  WHERE
    CLASSID = :NEW1.CLASSID;

    COMMIT;
END;

请提出解决方法。

迈克尔·布劳顿

尝试以下操作(我将REFERENCING OLD删除为OLD1,因为它在插入触发器中没有任何意义):

create or replace TRIGGER ENFORCE_CLASS_TIMINGS 
BEFORE INSERT ON SYSTEM.TUTPRAC 
REFERENCING NEW AS NEW1
FOR EACH ROW
WHEN ( 
  to_number(to_char(to_date(:NEW1.CLASS_TIME,'hh24:mi'),'sssss')) < 
    to_number(to_char(to_date('09:00', 'hh24:mi'), 'sssss')) OR
  to_number(to_char(to_date(:NEW1.CLASS_TIME,'hh24:mi'),'sssss')) > 
    to_number(to_char(to_date('18:00', 'hh24:mi'), 'sssss')))

BEGIN
  :NEW1.STAFFNO := NULL;
END;

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

不允许从触发器返回结果集

来自分类Dev

不允许使用Udevadm触发器

来自分类Dev

过程,函数或触发器中不允许使用use语句

来自分类Dev

ORA-04082:表格级触发器中不允许使用NEW或OLD引用

来自分类Dev

使触发器停止在不同的表上插入相同的数据

来自分类Dev

MySQL说:#1422-存储函数或触发器中不允许显式或隐式提交

来自分类Dev

错误-PLS-00679:之前/之后语句部分中不允许触发器绑定

来自分类Dev

MYSQL错误1422:在存储的函数或触发器中不允许显式或隐式提交

来自分类Dev

SQL Server子查询返回了多个值。当子查询使用触发器遵循=,!=,<,<=,>,> =时,这是不允许的

来自分类Dev

同一表上的 Oracle 更新触发器

来自分类Dev

Oracle触发器允许查看DML

来自分类Dev

进行触发以避免在表中插入相似的名称无效,并且不允许我插入任何行

来自分类Dev

插入或删除后Oracle触发器

来自分类Dev

Oracle插入前后的触发器

来自分类Dev

如何创建不允许插入的MySQL表

来自分类Dev

多个表的代替插入触发器

来自分类Dev

数据表插入触发器

来自分类Dev

在触发器上更新插入的记录

来自分类Dev

我有在表上插入后触发的数据库触发器。

来自分类Dev

使用触发器在另一个表上插入数据后更新表

来自分类Dev

在Oracle上创建触发器

来自分类Dev

RLMArray上的领域通知不允许我更新表

来自分类Dev

在Postgres中创建一个触发器函数,该函数不允许您有两个具有相同ID的条目

来自分类Dev

Oracle SQL-触发器插入到表中,并从序列中传递空值

来自分类Dev

Oracle触发器插入/更新到另一个表

来自分类Dev

Oracle-如何在两个表之间使用“插入后”触发器?

来自分类Dev

Oracle触发器不会在另一个表中插入值

来自分类Dev

ORACLE:创建将数据插入另一个表的触发器

来自分类Dev

表上的条件触发器

Related 相关文章

  1. 1

    不允许从触发器返回结果集

  2. 2

    不允许使用Udevadm触发器

  3. 3

    过程,函数或触发器中不允许使用use语句

  4. 4

    ORA-04082:表格级触发器中不允许使用NEW或OLD引用

  5. 5

    使触发器停止在不同的表上插入相同的数据

  6. 6

    MySQL说:#1422-存储函数或触发器中不允许显式或隐式提交

  7. 7

    错误-PLS-00679:之前/之后语句部分中不允许触发器绑定

  8. 8

    MYSQL错误1422:在存储的函数或触发器中不允许显式或隐式提交

  9. 9

    SQL Server子查询返回了多个值。当子查询使用触发器遵循=,!=,<,<=,>,> =时,这是不允许的

  10. 10

    同一表上的 Oracle 更新触发器

  11. 11

    Oracle触发器允许查看DML

  12. 12

    进行触发以避免在表中插入相似的名称无效,并且不允许我插入任何行

  13. 13

    插入或删除后Oracle触发器

  14. 14

    Oracle插入前后的触发器

  15. 15

    如何创建不允许插入的MySQL表

  16. 16

    多个表的代替插入触发器

  17. 17

    数据表插入触发器

  18. 18

    在触发器上更新插入的记录

  19. 19

    我有在表上插入后触发的数据库触发器。

  20. 20

    使用触发器在另一个表上插入数据后更新表

  21. 21

    在Oracle上创建触发器

  22. 22

    RLMArray上的领域通知不允许我更新表

  23. 23

    在Postgres中创建一个触发器函数,该函数不允许您有两个具有相同ID的条目

  24. 24

    Oracle SQL-触发器插入到表中,并从序列中传递空值

  25. 25

    Oracle触发器插入/更新到另一个表

  26. 26

    Oracle-如何在两个表之间使用“插入后”触发器?

  27. 27

    Oracle触发器不会在另一个表中插入值

  28. 28

    ORACLE:创建将数据插入另一个表的触发器

  29. 29

    表上的条件触发器

热门标签

归档