Oracle表更改监视器

时间:2008-12-03 14:42:20

标签: java oracle

我有一个连接到远程Oracle数据库视图的java应用程序。

有没有人知道Java中监视此表的更改方式?即如果有更新插入等我需要做出反应。

2 个答案:

答案 0 :(得分:10)

查看Oracle Change Notification,这是一个非常有趣的Oracle功能。

来自Oracle文档:“数据库更改通知是一项功能,使客户端应用程序能够向数据库注册查询并接收通知,以响应与查询关联的对象的DML或DDL更改。通知发布当DML或DDL事务提交时由数据库提供。“

答案 1 :(得分:5)

您可以在表上放置INSERT / UPDATE / DELETE触发器,以便在对表进行“数据”更改时执行某些操作。 (而不是改变表的结构)

我相信10g还支持视图触发器。

但是我不知道你怎么能通过民意调查来判断另一个java进程。

对不起。

你可能会创建一些解决方案,其中java应用程序有一个'listen'服务器,数据库将其推回一条消息。但这听起来很难维持。

评论中的

Justin Cave表明您可以配置Oracle Streams以发送Java应用程序可以通过JMS订阅的逻辑更改记录(LCR)。或者触发器可以将记录写入Java可以通过JMS订阅的高级队列。

您仍然需要警惕Oracle转换.. 由于Oracle事务的工作方式,触发器将触发更改,但它也可能会触发多次..

并且在任何情况下,java应用程序都无法在执行提交之前“看到”更改。