1

我想使用刷新的物化视图ON COMMIT。我的后备视图通过 DB Link 连接本地数据库中的两个表和远程数据库中的一个表。仅当对两个本地表之一进行更改时,如何才能刷新视图?

有没有其他方法可以解决这个问题?我可以让物化视图加入两个本地表并为远程数据库中的列设置 NULLS,然后在插入/更新到将填充这些字段的物化视图时触发触发器?还是对物化视图的更新会传播回源表?

我正在做这样的事情:

SELECT LOC1.ID, LOC1.NAME, LOC2.PRICING_TYPE, REM1.PURCHASING_ID
FROM LOCAL_TABLE_A LOC1, LOCAL_TABLE_B LOC2, REMOTE_TABLE@SOMEDB.WORLD REM1
WHERE LOC1.ID = LOC2.MASTER_ID
AND LOC1.REM_ID = REM1.ID
AND LOC2.YEAR = REM1.YEAR

REMOTE_TABLE只是与两个本地表相关的信息的查找表。它不应该在这里驱动任何东西,我只希望物化视图在LOCAL_TABLE_AOR LOCAL_TABLE_BCHANGE 时更​​新。

4

1 回答 1

4

您可以为远程表使用中间物化视图。此 MV 将在您的本地数据库中创建并使用 REFRESH ON DEMAND,以便您可以手动刷新它。您的 MV 将使用本地表代替远程表。

于 2010-10-06T12:26:44.250 回答