2008-09-16 12 views
0

私は、Oracleデータベースを監視し、基本的に最後の更新を確認するためのC#コードのサンプル・スニペットを探しています。これは、コマンドライン(Nagiosとの将来の統合に最適)またはGUIのいずれかです。私はいくつかのプロトタイプをやったことがありますが、私はまだ言語を学んでいるので、コードは長くなる傾向があります。C#からOracle DB内の最後のINSERT/UPDATEを監視するスニペット?

ご意見、ご要望があれば幸いです。

+0

@Lord Burner:確かに、テーブルのセットを監視する必要があります。そこにレコードを挿入するアプリケーションがあります。データそのものが説明的なので、比較的簡単なselectステートメントでチェックできます。私はキーがタイムスタンプとlast_updateレコードで遊ぶと思う。 –

答えて

1

一つの可能​​な解決策は、次のとおりです。

  1. は、テーブルをMY_TABLEする最後の更新時間を表しDATEフィールドを追加します。

    ALTER TABLE my_table ADD (last_update_time DATE);

  2. そのフィールドにインデックスを作成します。

    CREATE INDEX i_my_table_upd_time ON my_table (last_update_time);

  3. 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から通知を受け取る簡単な方法はありません。

+0

私は本当にあなたの助けを感謝セルゲイ、ありがとう! –

関連する問題