繁体   English   中英

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

[英]Can I have a materialized view refresh on commit only for two of three tables in its select statement?

我想使用刷新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_ALOCAL_TABLE_B更改。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM