查看dblink的同义词

时间:2014-03-05 13:36:04

标签: oracle view synonym dblink

我们正在PL / SQL中编写一些接口例程,通过使用另一个oracle数据库作为主机在几个oracle数据库之间传输数据。 (即hr - > host - > finance)

传输通过db_links进行 基本上

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

(它比使用多个表和转换等更复杂..但这是一般的想法)

我们在这里讨论的是以下哪项应该做

  1. 在代码
  2. 中引用“schema.tablename@dblink
  3. 创建同义词(公共或私人)“create synonym tablename for schema.tablename@dblink

  4. 在对象“create view tablename as select * from schema.tablename@dblink

  5. 上创建视图

    还有其他选择吗? 是否比其他人更好?

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

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

1 个答案:

答案 0 :(得分:2)

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

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