web-dev-qa-db-ja.com

別のサーバーでホストされているデータベースにテーブルのシノニムを作成する

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';
6
chemicalkt

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アドレスが変更された場合はどうなりますか?私にとって、DBリンク名はリモートデータベースのニーモニックである必要があります。 IPアドレスは私にほとんど教えてくれません。

11
DCookie

@DCookieに加えて

リモートDBの同義語を作成する場合。

CREATE PUBLIC DATABASE LINK rmt CONNECT TO user IDENTIFIED BY pw USING 
'Host_NAME:PORT/SERVICE_NAME_SID'
0
Ravi Parekh