1

私は、DB変更通知を有効にしようとしているOracle DBの完全な初心者です。

private void RegisterNotification()
    {
        const string connstring = "Data Source=ORA_DB;User Id=USER;Password=pass;";
        try
        {
            var connObj = new OracleConnection(connstring);
            connObj.Open();
            var cmdObj = connObj.CreateCommand();
            cmdObj.CommandText = "SELECT * FROM MYTABLE";
            var dep = new OracleDependency(cmdObj);
            dep.QueryBasedNotification = false;
            dep.OnChange += new OnChangeEventHandler(OnNotificationReceived);
            cmdObj.ExecuteNonQuery();
            connObj.Close();
            connObj.Dispose();
            connObj = null;
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.ToString());
        }
    }

public static void OnNotificationReceived(object src, OracleNotificationEventArgs arg)
    {
        MessageBox.Show("Table has changed!");
    }

「GRANT CHANGE NOTIFICATION TO USER;」を実行しました。しかし、手動でもプログラムでもテーブルデータを変更しても何も起こりません。クエリベースの通知も機能しません。私は、Oracle の設定で何かが欠けていると思います。

私は Oracle 11.2 標準版を持っています。

4

2 に答える 2

0

管理者権限で、コンソール アプリケーションとしてソフトを実行してみてください。私たちがそれに対処していたとき、私たちは同じものに直面していました。Web サービスでそれを使用することができませんでした。

于 2013-06-27T08:42:36.107 に答える