我有两个PL / SQL系统,分别位于两个单独的数据库中。 SystemA将需要填充SystemB的表。这可能将通过数据链路完成。每次在SystemB的表中插入一组记录时,必须运行SystemB中的一个进程。我可以等待SystemA完成,然后运行脚本以开始在SystemB中进行处理,但是由于SystemA可能要花费大量时间进行处理,然后填充SystemB,所以我希望SystemB在每组记录可用时立即对其进行处理(每个记录可以独立处理其他集合,因此可以正常工作)。
我不确定如何在PL / SQL中执行偶驱动的编程。我需要SystemA通知SystemB一组已准备好进行处理。我的第一个想法是在SystemB中有一个特殊的“事件”表,然后在SystemA完成设置后,将其插入“事件”表中,并且在插入操作上有一个触发器来启动该过程(该过程可能很长。 ,在SystemB中每个过程可能需要5-10分钟)。我对Oracle中的触发器没有足够的经验,无法知道这是否是确定的方法,或者是否有更好的机制。有什么建议吗?提示?忠告?
最佳答案
使用Oracle高级队列;为此而设计的。我相信您仍然必须在两个系统之间建立数据库链接(在这种情况下,从B到A,以消耗A上的队列)。
关于oracle - PL/SQL中的事件驱动编程,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5021088/