私は、Oracleデータベースを監視し、基本的に最後の更新を確認するためのC#コードのサンプル・スニペットを探しています。これは、コマンドライン(Nagiosとの将来の統合に最適)またはGUIのいずれかです。私はいくつかのプロトタイプをやったことがありますが、私はまだ言語を学んでいるので、コードは長くなる傾向があります。C#からOracle DB内の最後のINSERT/UPDATEを監視するスニペット?
ご意見、ご要望があれば幸いです。
私は、Oracleデータベースを監視し、基本的に最後の更新を確認するためのC#コードのサンプル・スニペットを探しています。これは、コマンドライン(Nagiosとの将来の統合に最適)またはGUIのいずれかです。私はいくつかのプロトタイプをやったことがありますが、私はまだ言語を学んでいるので、コードは長くなる傾向があります。C#からOracle DB内の最後のINSERT/UPDATEを監視するスニペット?
ご意見、ご要望があれば幸いです。
一つの可能な解決策は、次のとおりです。
は、テーブルを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);
UPDATE ONとINSERT ON火災や店舗が新しいフィールドに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から通知を受け取る簡単な方法はありません。
私は本当にあなたの助けを感謝セルゲイ、ありがとう! –
@Lord Burner:確かに、テーブルのセットを監視する必要があります。そこにレコードを挿入するアプリケーションがあります。データそのものが説明的なので、比較的簡単なselectステートメントでチェックできます。私はキーがタイムスタンプとlast_updateレコードで遊ぶと思う。 –