gpt4 book ai didi

oracle - dblink 上的同义词或 View

转载 作者:行者123 更新时间:2023-12-02 11:52:17 25 4
gpt4 key购买 nike

我们正在 PL/SQL 中编写一些接口(interface)例程,通过使用另一个 Oracle 数据库作为主机,在多个 Oracle 数据库之间传输数据。 (即人力资源 -> 主持人 -> 财务)

传输是通过 db_links 进行的本质上

insert into schema.tablname@dblink1 select * from schema.tablename@dblink2;

(它比多个表和转换等更复杂......但这就是一般思想)

我们在这里一直在讨论的是应该执行以下哪项操作

  1. 在代码中到处引用“schema.tablename@dblink
  2. 创建同义词(公共(public)或私有(private))“为 schema.tablename@dblink 创建同义词表名

  3. 在对象“create view tablename as select * from schema.tablename@dblink”上创建 View

还有其他选择吗?有哪些本质上比其他更好?

注意:dblink 名称在每个级别的开发/测试/生产中都是标准化的这样 dblink 'server1' 就会转到开发主机上的开发服务器和测试主机上的测试服务器等。

任何表名都不应该存在于多个服务器上

最佳答案

通过为远程对象创建同义词,位置透明度是最简单的设置。这比在每个 SQL 中都包含远程地址更容易维护。您将如何快速测试其他远程数据库中的某些内容?只需重新创建涉及的数据库链接就足以实现这一目标。

另一个选项可能是从本地数据库中的远程表创建快照作为物化 View ,但这也需要数据库链接。它会以额外的空间为代价获得良好的性能。

关于oracle - dblink 上的同义词或 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22199350/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com