回答
您可以在表上执行INSERT/UPDATE/DELETE触发器,以便在对表进行“数据”更改时执行某些操作。 (而不是改变表的结构)
我相信10g也支持视图触发器。
但我不确定如何通过查询来通知其他java进程。
对不起。
你可能会创建一些解决方案,其中java应用程序有一个“侦听”服务器,并且数据库将其推回一条消息。但听起来很难维持。
Justin Cave在评论中建议您可以配置Oracle Streams以发送Java应用程序可以通过JMS订阅的逻辑更改记录(LCR)。或者触发器可以将记录写入Java可以通过JMS订阅的高级队列。
你仍然需要警惕的Oracle transations的.. 由于甲骨文方式交易工作,触发条件会在变化,但它也可能触发多次..
和anycase的Java应用程序无法在执行提交之前“查看”更改。
根据体系结构的重要性,您可以配置Oracle Streams以发送Java应用程序可以通过JMS订阅的逻辑更改记录(LCR)。或者触发器可以将记录写入Java可以通过JMS订阅的高级队列。 – 2008-12-03 14:54:05
看看Oracle Change Notification,这是一个非常有趣的Oracle功能。
从Oracle文档:“数据库更改通知”是一项功能,它使客户端应用程序能够向数据库注册查询,并接收通知以响应与查询关联的对象上的DML或DDL更改。数据库在DML或DDL事务提交时“。
- 1. WMI:监视器注册表更改
- 2. jQuery监视器表的更改?
- 3. 更改监视器目录
- 4. JavaScript/jQuery:监视器更改为元素?
- 5. 监视器会话更改事件c
- 6. 监视文件更改Java
- 7. 监视文件的更改
- 8. 监视文件更改
- 9. AIX监视目录更改
- 10. 文件监视和更改
- 11. 监视文件的更改
- 12. 如何监视oracle数据库更新?
- 13. 如何在Perl调试器中监视表达式的更改?
- 14. MySQL表更改的事件监听器?
- 15. 静态表更改DOM监听器
- 16. 更改Oracle表名
- 17. ABAddressBook更改监听器
- 18. JQuery URL更改监听器
- 19. Android AsyncTask - 更改监听器
- 20. 使用Zabbix监视Oracle DB
- 21. Jetty监视器WAR文件并在更改时更新
- 22. 监视对数据库和更新列表的更改
- 23. 如何将更改监听器添加到列表(而不是列表视图)
- 24. 更改收集器上的监听器(显然是监听模型更改)
- 25. 监视rootScope变量以更改progressBar值
- 26. 使用libuv监视文件更改
- 27. 监视对阵列的更改
- 28. 监视文件更改 - Asyncio和Flask
- 29. 如何监视文件的更改?
- 30. 使用Node.js监视Mongo的更改
监控数据库表的变化是'设计异味'。您应该考虑引入由企业服务总线(ESB)支持的事件驱动体系结构(EDA)。例如Mule(www.mulesoft.com)。 – 2011-12-22 09:44:51
好多流行语和“体系结构”总是正确的答案 – Gaius 2011-12-22 16:00:25