Oracle Streams如何防止在分发过程中执行代码?

我想到Oracle Streams,并且陷入了一个问题。

Oracle Streams用于我正在编程的数据库,但我不是DBA。 所以我不熟悉数据库的configuration。 我只是有一个“简单”的想法,Streams实际上做了什么。

在我看来,它保留了几个分布式数据库之间的数据一致性。 现在我的问题:

假设我们必须通过Oracle Streams来匹配数据库A和B. 两者都是从相同的模式,表格和触发器构build的。 如果数据库A中的表T1上有一个插入,则数据通过stream分发到数据库B中的表T1。

但是如果表T1有一个插入触发器TR1呢? 它是在数据库A上对插入到T1中的数据库A执行的,但是如果stream将数据formsA分配给B,那么数据库B上会发生什么? 触发器是否被执行? 我想不是,因为这里有很多麻烦。

在数据分发期间,Streams会阻止代码的执行吗?

发生什么取决于触发器是否设置为触发一次 。

如果将触发器设置为触发一次,则更改将应用​​于数据库A,并且stream忠实地将其复制到数据库B.这听起来像您想要的。

否则,在Streams复制导致触发器触发数据库A的更改之后,触发器会在数据库B上再次触发。

哪种方法适合于任何特定情况取决于触发器的作用。

请参阅Oracle的文档以获得更全面的解释和另一个示例。