Question

dans Oracle, si l'autre base de données est dans le même serveur, j'ai procédé aux éléments suivants pour créer un synonyme

CREATE SYNONYM synonymName FOR databaseName.schema.table;

Que dois-je faire pour créer un synonyme de tables dans une base de données hébergée dans un autre serveur afin de pouvoir fournir les informations d'identification de la connexion au serveur.

J'ai besoin de cela pour Oracle et Netezza.

Edit: En essayant (pour Oracle) en prenant référence à la réponse ci-dessous, j'ai eu une erreur de syntaxe lorsque la liaison distante contient une adresse IP ou un '-' dans le nom de lien.par exemple.

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

Était-ce utile?

La solution

Pour Oracle, vous créeriez un lien de base de données vers la base de données distante:

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

Créez ensuite le synonyme:

CREATE SYNONYM syn FOR schema.table@rmt;

alors sélectionnez simplement x, y, z de Syn;

Pas sûr de Netezzza.

EDIT:

Vous ne pouvez pas utiliser de caractère "-" dans un nom de lien de base de données.

Si vous choisissez d'utiliser une adresse IP dans un nom de lien, vous devez entourer le nom de lien dans des guillemets doubles.Vous ne savez pas pourquoi vous voudriez faire cela quand même - que si l'adresse IP de votre base de données distante change?Pour moi, le nom de lien DB doit être un mnémonique pour la base de données distante.Une adresse IP me dit peu.

Autres conseils

In Addition to @DCookie

If you want to create synonym of remote DB.

CREATE PUBLIC DATABASE LINK rmt CONNECT TO user IDENTIFIED BY pw USING 
'HOST_NAME:PORT/SERVICE_NAME_SID'
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top