同义词或查看 dblink

Posted

技术标签:

【中文标题】同义词或查看 dblink【英文标题】:Synonym or view over dblink 【发布时间】:2014-03-05 13:36:03 【问题描述】:

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

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

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

(它比具有多个表和转换等更复杂。但这是一般的想法)

我们在这里一直在讨论的是以下哪个应该做

    在输出代码中到处引用“schema.tablename@dblink

    创建同义词(公共或私有)“create synonym tablename for schema.tablename@dblink

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

还有其他选择吗? 有没有天生比其他人更好的?

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

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

【问题讨论】:

【参考方案1】:

通过为您的远程对象创建同义词,位置透明度是最简单的设置。这比在每个 SQL 中都有远程地址更容易维护。您将如何对其他远程数据库中的内容进行快速测试?只需重新创建相关的数据库链接即可完成此操作。

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

【讨论】:

我不认为我们现在担心性能..我们不认为这是一个问题..但至少对于某些桌子来说这是一个想法。

以上是关于同义词或查看 dblink的主要内容,如果未能解决你的问题,请参考以下文章

Oracle创建database link(dblink)和同义词(synonym)

oracle 同义词

Oracle中使用同义词介绍

oracle 查看表结构语句

oracle 查看同义词

查看Oracle当前用户下的(表视图,同义词...)