Oracle PL/SQL触发器仅在9-5小时后对数据进行更改时才会运行
问题描述:
我已创建基本审计表,以便如果他们插入,更新,删除或更改“雇员”表,时间,用户和行为是存储在“审计员工”表中。Oracle PL/SQL触发器仅在9-5小时后对数据进行更改时才会运行
我只是想知道是否有可能让触发器只会在'员工'表上发生的变化是在下午5点到7点之后触发?
有没有人有任何想法这可能会使用SYSDATE?
谢谢
答
您无法控制触发器是否会基于一天中的时间触发。但是,您可以将逻辑添加到触发器,以便您只在特定的时间段内将数据插入历史记录表中。类似于
IF(to_number(to_char(sysdate, 'hh24')) >= 17 or
to_number(to_char(sysdate, 'hh24')) < 7)
THEN
INSERT INTO employee_history...
END IF;
+0
'IF mod(to_char(sysdate,'hh24')+ 7,24) 2013-03-20 21:59:13
+1
如果提取(小时来自sysdate )不在7到17之间 – 2013-03-21 09:46:34
审计跟踪的值不跟踪*每个* chnage对表所做的审计跟踪的值是什么? – APC 2013-03-20 21:48:53
@APC - 显然只有坏人所做的更改需要审核。而且,众所周知,坏人只能在下午5点和上午7点之间工作。只有*好人*从早上7点到下午5点工作。你不需要担心好人做什么,因为他们是,你知道,好人。审计好人的行为时,没有用处堵塞审计线索。它只是浪费磁盘空间。担心坏人,好人会照顾好自己。分享并享受。 – 2013-03-21 02:41:41
也许他们正在执行一个适合家庭的工作环境。 “您将在下午5点停止工作,或者遭受友好人力资源部门的电话” – 2013-03-27 07:53:54