【问题标题】:create synonym for table in a database hosted in a different server为托管在不同服务器中的数据库中的表创建同义词
【发布时间】:2012-07-24 14:40:48
【问题描述】:

在oracle中,如果其他数据库在同一台服务器中,我做了以下创建同义词

CREATE SYNONYM synonymName FOR databaseName.schema.table;

我应该如何为托管在不同服务器中的数据库中的表创建同义词,以便我可以提供服务器连接凭据。

oracle 和 netezza 都需要这个。

编辑:通过参考下面的答案尝试(对于 Oracle)时,当远程链接包含 ip 地址或链接名称中的“-”时出现语法错误。例如。

CREATE PUBLIC DATABASE LINK abc-def.xyz.com CONNECT TO user IDENTIFIED BY pw USING 'databaseName';

【问题讨论】:

    标签: oracle synonym netezza


    【解决方案1】:

    对于 Oracle,您将创建一个到远程数据库的数据库链接:

    CREATE PUBLIC DATABASE LINK rmt CONNECT TO user IDENTIFIED BY pw USING 'remotedb';
    

    然后创建同义词:

    CREATE SYNONYM syn FOR schema.table@rmt;
    

    然后简单地 SELECT x,y,z FROM syn;

    不确定 netezza。

    编辑:

    您不能在数据库链接名称中使用“-”字符。

    如果您选择在链接名称中使用 IP 地址,则必须用双引号将链接名称括起来。不知道你为什么要这样做——如果你的远程数据库的 IP 地址改变了怎么办?对我来说,数据库链接名称应该是远程数据库的助记符。 IP 地址告诉我什么。

    【讨论】:

      【解决方案2】:

      除了@DCookie

      如果你想创建远程数据库的同义词。

      CREATE PUBLIC DATABASE LINK rmt CONNECT TO user IDENTIFIED BY pw USING 
      'HOST_NAME:PORT/SERVICE_NAME_SID'
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-04-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-12-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多