Créer synonyme de table dans une base de données hébergée dans un autre serveur
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';
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'