6

在 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';
4

2 回答 2

11

对于 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地址告诉我很少。

于 2012-07-26T04:27:45.413 回答
0

除了@DCookie

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

CREATE PUBLIC DATABASE LINK rmt CONNECT TO user IDENTIFIED BY pw USING 
'HOST_NAME:PORT/SERVICE_NAME_SID'
于 2015-12-21T09:49:23.890 回答