我可以在提交时仅对其 select 语句中的三个表中的两个表进行物化视图刷新吗?

aw *_*rud 2 sql oracle triggers materialized-views

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

还有其他方法可以解决这个问题吗?我可以让物化视图只连接两个本地表并为远程数据库中的列设置 NULL,然后在插入/更新物化视图时使用触发器来填充这些字段吗?或者物化视图的更新是否传播回源表?

我正在做这样的事情:

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
Run Code Online (Sandbox Code Playgroud)

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

Vin*_*rat 5

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