C #: слушать уведомления оракула (вставить, обновить, удалить)? - PullRequest
0 голосов
/ 02 апреля 2019

Я пытаюсь прослушивать базу данных Oracle (вставлять, обновлять, удалять события) с помощью приложения C #, которое используется для получения данных для пользовательских аналитических целей.

На самом деле я использую объект OracleDependency и его обработчик событий OnChange. Я регистрирую таблицы в OracleCommand («SELECT * FROM ...») и добавляю их в AddCommandDependency.

Это работает, но для событий удаления я не могу получить исходные данные, так как событие владеет только rowid (а не PK) и запускается после фиксации. Я видел, что сохранение значения RAWID в собранных данных (во время события вставки, которое будет использоваться после, во время события удаления) не является хорошим решением, так как его значение может измениться.

Так что у меня есть разные вопросы: - Можно ли получить первичный ключ? - Или запустить событие непосредственно перед (как «триггеры перед удалением»)? - Кроме того, возможно ли запустить событие без коммита?

У меня есть еще одна идея: создать триггеры для всех таблиц и вставить данные истории в таблицу истории. Но для его хранения может потребоваться очень большой объем памяти.

У вас есть идея решить эту проблему?

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...