如何将外国 table 与本地 table 同步?
How to synchronise a foreign table with a local table?
我正在使用 Oracle 外部数据包装器,并希望在本地拥有一些外部表的本地副本。除了实体化视图并手动刷新它们之外,还有其他选择吗?
不一定,除非您想在 Oracle 中添加功能:
如果你在 Oracle table 上添加一个触发器来记录另一个 table 中的所有数据修改,你可以在那个 table。然后,您可以定期 运行 PostgreSQL 中的一个函数,该函数获取自您上次检查以来的更改并将它们应用到 PostgreSQL table.
如果您了解“实体化视图日志”在 Oracle 中的工作方式(我不了解,而且我认为文档没有说明),您可以定义一个外部 table并像上面一样使用它。那可能会更便宜。
这两个想法仍然需要您定期 运行 PostgreSQL 中的某些东西,但您可能会更便宜。也许(如果你有钱的话)你可以使用 Oracle 异构服务来修改 PostgreSQL table 每当 Oracle table.
发生变化时
我正在使用 Oracle 外部数据包装器,并希望在本地拥有一些外部表的本地副本。除了实体化视图并手动刷新它们之外,还有其他选择吗?
不一定,除非您想在 Oracle 中添加功能:
如果你在 Oracle table 上添加一个触发器来记录另一个 table 中的所有数据修改,你可以在那个 table。然后,您可以定期 运行 PostgreSQL 中的一个函数,该函数获取自您上次检查以来的更改并将它们应用到 PostgreSQL table.
如果您了解“实体化视图日志”在 Oracle 中的工作方式(我不了解,而且我认为文档没有说明),您可以定义一个外部 table并像上面一样使用它。那可能会更便宜。
这两个想法仍然需要您定期 运行 PostgreSQL 中的某些东西,但您可能会更便宜。也许(如果你有钱的话)你可以使用 Oracle 异构服务来修改 PostgreSQL table 每当 Oracle table.
发生变化时