监视C#中Oracle数据库中最后一次INSERT / UPDATE的代码片段?

时间:2020-03-05 18:55:06  来源:igfitidea点击:

我正在寻找一个简单的Ccode示例片段来监视Oracle数据库并基本上检查其最新更新。它可以是命令行(非常适合将来与Nagios集成)或者GUI。我做了一些原型,但是由于我仍然在学习某种语言,所以代码往往会很冗长。

任何建议/评论将不胜感激。

解决方案

回答

一种可能的解决方案是:

  • 将代表最后更新时间的DATE字段添加到MY_TABLE表。 ALTER TABLE my_table ADD(last_update_time DATE);
  • 在该字段上创建一个索引。 在my_table上创建索引i_my_table_upd_time(last_update_time);
  • 在该表上创建一个数据库触发器,该触发器将触发ON UPDATE和ON INSERT,并将SYSDATE存储到新字段中。
CREATE OR REPLACE TRIGGER my_table_insert_trg  
BEFORE INSERT OR UPDATE  
ON my_table  
FOR EACH ROW  
BEGIN  
   :new.last_update_time := SYSDATE;  
END;

现在,我们可以每5分钟发出以下查询

SELECT max(last_update_time) FROM my_table;

它会为我们提供上次更新表的时间。

抱歉,没有简单的方法可以从Oracle获得通知。