“ORA-04072:无效的触发器类型”错误。问题是啥?

Posted

技术标签:

【中文标题】“ORA-04072:无效的触发器类型”错误。问题是啥?【英文标题】:"ORA-04072: invalid trigger type" error. What is the problem?“ORA-04072:无效的触发器类型”错误。问题是什么? 【发布时间】:2021-05-17 18:52:11 【问题描述】:
create or replace trigger "BILET_VANDUT"
for each row
AFTER insert on "AT_BILETE"
UPDATE AT_SPECTACOLE
SET s.NR_BILETE_VANDUTE= s.NR_BILETE_VANDUTE+1 FROM AT_SPECTACOLE s , AT_BILETE b WHERE s.ID_SPECTACOL=b.SPECTACOL;
 
end;

【问题讨论】:

【参考方案1】:

直接的问题是您的从句方式已经过时了;你开始:

create or replace trigger "BILET_VANDUT"
for each row
AFTER insert on "AT_BILETE"

但应该是的

create or replace trigger "BILET_VANDUT"
AFTER insert on "AT_BILETE"
for each row
begin

(正如@a_horse_with_no_name 指出的那样,您也缺少 PL/SQL begin)。

不过,您的更新也是错误的;你不能更新 from 的东西。您可能只想:

UPDATE AT_SPECTACOLE
SET NR_BILETE_VANDUTE= NR_BILETE_VANDUTE+1;

当您可以同时从不同的会话中进行多个插入时,您将会遇到一致性问题。在需要时计算这些计数或总数通常更简单,作为查询的一部分,或者如果您想隐藏一点,则使用视图;并且视图可以在必要时实现。

【讨论】:

以上是关于“ORA-04072:无效的触发器类型”错误。问题是啥?的主要内容,如果未能解决你的问题,请参考以下文章

VBS 错误 处理 问题

400错误 是前端的问题 还是服务器

SimpleSAML 配置错误,收到此错误。可能是啥问题?

NSIS Error错误问题

Tomcat 问题 求救!错误如下:

Cordova 安装错误:路径问题 (?) - 错误代码 ENOENT