监视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获得通知。