[系统][触发器][触发]系统触发器触发问题| oracle学习日记

17. 02.

    我创建了一个系统触发器,记录用户登录时的信息,代码如下:
create or replace trigger tr_LogOn_all
  after logon on database
begin
  insert into t_logon
    values('1', user, systimestamp,'tr_LogOn_all');
end;

    现在的问题是:为什么登录一次,会触发两次这个触发器,在表中会写入两条记录?
    请大家帮帮忙,{dy}次接触系统触发器,xx摸不着头脑,谢谢大家!


我知道了,SYSMAN后台有进程,每隔一分钟左右登录一次数据库,所以被记录下来。
触发器没问题。

但是我这写入表中的都是同一个普通用户scott,并不是sysman或是sys啊?
给出你的数据,时间xx点。

另外,请确认该数据库仅你自己在操作。
我表中的数据:
LOG_ID USER_NAME  LOGON_TIME                        LOGON_MSG
—— ———- ——————————— ———————————
1      SCOTT      09-2月 -10 11.54.50.468000 上午    tr_LogOn_all
1      SCOTT      09-2月 -10 11.54.50.562000 上午    tr_LogOn_all
你是咋登录的?

完整的操作步骤
用命令登录的:
connect scott/oracle
我找到原因了。之前我都是在pl/sql developer的command窗口中用命令进行登录的,每次都会触发两次。但是如果在sql *plus中用命令登录,只会触发一次。
原因找到了,可是这是为什么呢?


标签: , , ,


郑重声明:资讯 【[系统][触发器][触发]系统触发器触发问题| oracle学习日记】由 发布,版权归原作者及其所在单位,其原创性以及文中陈述文字和内容未经(企业库qiyeku.com)证实,请读者仅作参考,并请自行核实相关内容。若本文有侵犯到您的版权, 请你提供相关证明及申请并与我们联系(qiyeku # qq.com)或【在线投诉】,我们审核后将会尽快处理。
—— 相关资讯 ——