我正在寻找一个简单的 C# 代码示例片段来监视 Oracle 数据库并基本上检查它的最后更新。它可以是命令行(非常适合将来与 Nagios 集成)或 GUI。我已经做了一些原型,但代码往往会变得很长,因为我还在学习这门语言。
任何建议/评论将不胜感激。
一种可能的解决方案是:
向 MY_TABLE 表添加一个表示上次更新时间的 DATE 字段。
ALTER TABLE my_table ADD (last_update_time DATE);
在该字段上创建索引。
CREATE INDEX i_my_table_upd_time ON my_table (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 获得通知。