我们正在使用 oracle CQN 来通知特定查询的更改。
这适用于所有插入和更新。问题是删除,在删除时,通知将与 ROWID 一起发送以及其他详细信息。我们不能再使用 ROWID 来查找该行,因为它已被删除。
有没有办法在有关已删除行的 CQN 通知中获取更多数据?
我们正在使用 oracle CQN 来通知特定查询的更改。
这适用于所有插入和更新。问题是删除,在删除时,通知将与 ROWID 一起发送以及其他详细信息。我们不能再使用 ROWID 来查找该行,因为它已被删除。
有没有办法在有关已删除行的 CQN 通知中获取更多数据?
恐怕不是。
我的理解是,该服务是为允许服务器或客户端实现缓存而定制的。在这种情况下,缓存的表或视图应该加载到内存中,包括 rowid,在收到通知后,订阅 CQN 服务的缓存管理器应该使受 rowid 列表影响的行无效(或提前再次获取它)。
现实生活中的例子。这对于需要尽快接通呼叫者的智能网络(即管理电信网络上的预付费用户)等实时数据库很有用。负责授权调用的机器(SCP,在整个领土上有几个)通常是一个内存数据库,真正的持久数据库位于另一个节点上(中央数据中心的 SDP)。带有磁盘数据库的 SDP 接收生命周期事件并平衡 refils 事件并通知订阅的 SCP。
您可能有不同的使用模式。
我也遇到了这个问题,我没有删除一行,而是使用了“Active”列,而不是删除了我将“Active”从“YES”更改为“NO”的行。