我正在使用Oracle外部数据包装器,并希望在本地拥有一些外部表的本地副本。除了物化视图并手动刷新之外,还有其他选择吗?
不是真的,除非你想在Oracle中添加功能:
-
如果您在Oracle表上添加一个触发器,记录另一个表中的所有数据修改,您可以在该表上定义一个外表。然后,你可以在PostgreSQL中定期运行一个函数,它将上次检查后的更改应用到PostgreSQL表中。
-
如果你了解"物化视图日志"是如何在Oracle中工作的(我不知道,我认为文档没有告诉你),你可以在上面定义一个外表并像上面那样使用它。那可能更便宜。
这两个想法仍然需要你在PostgreSQL中定期运行一些东西,但你可能更便宜。也许(如果你有钱的话)你可以使用Oracle异构服务来修改PostgreSQL表,无论何时Oracle表中有什么变化。