gpt4 book ai didi

c# - 轮询 Oracle 数据库以获取更改

转载 作者:行者123 更新时间:2023-11-30 15:11:49 27 4
gpt4 key购买 nike

我想弄清楚如何在不使用触发器的情况下轮询对 Oracle 表所做的更改。我目前关心的唯一变化是新的/插入的记录。任何建议将不胜感激。

我也真的不想使用其他表来跟踪更改的内容。

谢谢!

小号

最佳答案

CDC 是一个选项,但如果您只是编写需要通知新数据的应用程序,它可能会有点繁重,Data Change Notification可能是更合适的解决方案。这也避免了轮询数据库的需要,因为数据库可以通知应用程序更改。

您还可以使用 Streams 将更改记录发送到应用程序。

如果您真的想轮询表,假设您使用的是 10g 或更高版本,您可以使用 ORA_ROWSCN 伪列。默认情况下,这将为您提供对特定 block 的最后更改的近似 SCN(系统更改编号)。如果您不关心获得一些虚假行,这可能就足够了。如果您在启用 ROWDEPENDENCIES 的情况下重建表,ORA_ROWSCN 将在行级别而不是表级别进行跟踪。当然,由于 ORA_ROWSCN 未编制索引,因此检索自特定 SCN 以来已修改的行将需要表扫描。您可能会更好地使用序列生成的主键或表中的 CREATED_DATE 列来跟踪插入行的时间。

关于c# - 轮询 Oracle 数据库以获取更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1884481/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com