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の場合、リモートデータベースへのデータベースリンクを作成します。
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アドレスは私にほとんど教えてくれません。
@DCookieに加えて
リモートDBの同義語を作成する場合。
CREATE PUBLIC DATABASE LINK rmt CONNECT TO user IDENTIFIED BY pw USING
'Host_NAME:PORT/SERVICE_NAME_SID'