【问题标题】:Can i have trigger for both 'Before' and 'After' events?我可以同时触发“之前”和“之后”事件吗?
【发布时间】:2019-07-22 02:16:59
【问题描述】:

我通过以下代码尝试了上述场景

CREATE OR REPLACE TRIGGER test_bf_af2
AFTER LOGON ON SCHEMA and 
BEFORE LOGOFF ON SCHEMA

BEGIN
  --some logic
END;
/

但给了我错误提示

错误报告:ORA-04079:无效的触发器规范

  1. 00000 - “无效的触发器规范”

*原因:create TRIGGER 语句无效。

*操作:检查语句的语法是否正确。

那么,两种类型都可以吗?如果是,我该如何实现?

【问题讨论】:

  • 你不能(据我所知)。您需要两 (2) 个单独的触发器。

标签: oracle plsql database-trigger


【解决方案1】:

使用常规 DML 触发器 tt 可以在同一个触发器中包含多个事件(INSERT、UPDATE)。但是,时间必须相同:BEFORE 或 AFTER。

系统触发器也是如此。由于 Oracle 既不支持 BEFORE LOGON 也不支持 AFTER LOGOFF(出于显而易见的原因),因此您需要两个单独的触发器。

【讨论】:

    猜你喜欢
    • 2016-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-25
    • 2016-02-08
    • 1970-01-01
    • 2013-08-15
    • 1970-01-01
    相关资源
    最近更新 更多