有关数据更改的自定义电子邮件通知

时间:2019-07-15 14:24:16

标签: oracle database-design push-notification

我想开发一个组件,当特定或非特定记录发生更改时,该组件可以发送电子邮件通知。

我希望用户选择一个表,也许要选择一个特定的列或行。然后,我想在用户的选择发生变化时通知用户。

我使用Oracle 12g数据库。

是否有实现此目的的常用方法?

谢谢。

我已经尝试了以下技术:

  • Oracle连续查询通知
  • Oracle Change Data Capture
  • Oracle触发器

示例:

  1. 用户“订阅”表“ customer”和“ street”列。
  2. 更新,插入或删除“街道”列中的值时,用户会收到一封电子邮件。

1 个答案:

答案 0 :(得分:0)

  

我希望用户选择一个表,也许要选择一个特定的列或行。

我想以“显然” 开始我的回答,但我想这可能并不明显。无论哪种方式,都没有通用或通用的方式来执行此操作。这不是一个普遍的要求,并且当需要这种东西时,CQN通常就可以满足。但是,您已经排除了CQN(没有给出为什么它不符合您的需求的原因)。我想这是因为CQN不允许用户通过界面指定和实施策略。

在这种情况下,您没有太多选择。实际上,我想到的唯一一个工具是通过Dynamic SQL生成复合触发器的工具。您需要触发器,因为这是跟踪想要跟踪的事物的简便方法。您需要复合触发器,以便可以评估多个行,但每个DML语句仅发送一封电子邮件。您需要一个生成器,因为动态SQL是构建符合用户定义条件的触发器的唯一方法。

执行触发器是一个性能问题。因此,您需要处理两件事:

  • 当一个用户想要跟踪同一张桌子上的多个不同事件时会发生什么?
  • 当多个用户想要在同一个表上跟踪同一事件(或不同事件!)时,会发生什么?

这里有很多复杂性。您真的应该评估一下此要求的重要性,以及用户在您陷入困境之前真正需要多少灵活性。