Oracle中有没有办法查询物化视图快速刷新所做的更改?

发布于 2024-12-28 21:14:26 字数 444 浏览 1 评论 0原文

假设您有两个 Oracle 数据库:DB_A 和 DB_B。 DB_A 中有一个名为 TAB1 的表,带有物化视图日志,DB_B 中有一个名为 SNAP_TAB1 的物化视图,使用以下方法创建:

CREATE SNAPSHOT SNAP_TAB1
REFRESH FAST
AS SELECT * FROM TAB1@DB_A;

是否有办法在每次调用快速刷新物化视图后在 DB_B 中查询对 SNAP_TAB1 所做的更改?

DBMS_SNAPSHOT.REFRESH( 'SNAP_TAB1', 'F' );

在 DB_A 中,刷新之前,您可以查询物化视图日志表 MLOG$_TAB1,以查看 TAB1 中哪些行已更改。我正在寻找一种在每次刷新后在 DB_B 中查询哪些行已在 SNAP_TAB1 中刷新的方法。

谢谢!

Say that you have two Oracle databases, DB_A and DB_B. There is a table named TAB1 in DB_A with a materialized view log, and a materialized view named SNAP_TAB1 in DB_B created with

CREATE SNAPSHOT SNAP_TAB1
REFRESH FAST
AS SELECT * FROM TAB1@DB_A;

Is there a way to query in DB_B the changes made to SNAP_TAB1 after each call to fast-refresh the materialized view ?

DBMS_SNAPSHOT.REFRESH( 'SNAP_TAB1', 'F' );

In DB_A, prior to the refresh, you can query the materialized view log table, MLOG$_TAB1, to see which rows have been changed in TAB1. I'm looking for a way to query in DB_B, after each refresh, which rows have been refreshed in SNAP_TAB1.

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

纸伞微斜 2025-01-04 21:14:26

我认为下面的行适用于预建表:

您可以在表 SNAP_TAB1 中添加一列。

对于插入,您可以将其放在 default sysdate => 上对于每个插入,您都会有插入的时间戳。

对于更新,您可以使用触发器。因为该列不涉及物化视图,所以用触发器更新该列不会有问题。

可能更好,使用触发器,您可以使用唯一 id 存储在该列中,在每次新刷新之前递增。(获取唯一 id 可能有不同的方法。)

显然,您无法跟踪删除有了这个想法。

I think the lines below work with prebuilt table:

You can add a column in the table SNAP_TAB1.

For inserts You can put it on default sysdate => for every insert you'll have the timestamp of the insert.

For updates you can use a trigger. Because the column is not involved in the Materialized View, updating the column with the trigger won't be a problem.

Probaly better, with the trigger you can use an unique id to store in that column, incremented before every new refresh.(Obtaining the unique id may have different aproaches.)

Obviously, you can't track deletes with this idea.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文