我有两个 PL/SQL 系统,驻留在两个独立的数据库中。 SystemA 将需要填充 SystemB 的表。这可能会通过数据链路完成。每次在 SystemB 的表中插入一组记录时,SystemB 中的一个进程必须运行。我可以等待 SystemA 完成,然后运行脚本开始在 SystemB 中处理,但是由于 SystemA 可能会花费很多时间处理然后填充 SystemB,我宁愿 SystemB 在每组记录可用时立即处理它们(每个set 可以独立于其他 set 进行处理,因此这应该可以正常工作。
我不确定如何在 PL/SQL 中进行偶数驱动编程。我需要 SystemA 通知 SystemB 一组已准备好进行处理。我的第一个想法是在 SystemB 中有一个特殊的“事件”表,然后当 SystemA 完成一组时,它插入到“事件”表中,并且插入时有一个触发器启动该过程(这个过程可能很长) ,每个进程可能需要 5-10 分钟)在 SystemB 中。我对 Oracle 中的触发器没有足够的经验,不知道这是否是一种既定的方法,或者是否有更好的机制。建议?尖端?有什么建议吗?
请您参考如下方法:
使用 Oracle 高级队列;它是为此而设计的。我相信您仍然需要在两个系统之间建立数据库链接(在本例中是从 B 到 A,以使用 A 上的队列)。