2012-07-26 25 views
5

w Oracle, jeżeli druga baza danych znajduje się w tym samym serwerze, zrobiłem następujące czynności, aby utworzyć synonimutworzyć synonim tabeli w bazie danych zorganizowanej w innym serwerze

CREATE SYNONYM synonymName FOR databaseName.schema.table; 

Co należy zrobić, aby stworzyć synonim dla tabel w bazie danych hostowanej na innym serwerze, aby umożliwić podanie poświadczeń połączenia z serwerem.

Potrzebuję tego zarówno dla wyroczni, jak i netezzy.

Edycja: Podczas próby (dla Oracle), odwołując się do odpowiedzi poniżej, dostałem błąd składni, gdy zdalny link zawiera adres IP lub "-" w nazwie linku. na przykład.

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

Odpowiedz

8

Dla Oracle, należy utworzyć łącze bazy danych do zdalnej bazy danych:

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

następnie utworzyć synonim:

CREATE SYNONYM syn FOR [email protected]; 

Potem wystarczy wybrać x, y, z FROM syn ;

Not sure about netezza.

EDIT:

Nie można użyć "-" znak w nazwie łącza bazy danych.

Jeśli zdecydujesz się użyć adresu IP w nazwie linku, musisz otoczyć nazwę łącza podwójnymi cudzysłowami. Nie wiesz, dlaczego i tak chcesz to zrobić - a co, jeśli zmieni się adres IP Twojej zdalnej bazy danych? Dla mnie nazwa łącza DB powinna być mnemonikem dla zdalnej bazy danych. Adres IP niewiele mi mówi.

+0

Czy mógłbyś spojrzeć na powyższą edycję? – chemicalkt

0

oprócz @DCookie

Jeśli chcesz utworzyć synonim zdalnego DB.

CREATE PUBLIC DATABASE LINK rmt CONNECT TO user IDENTIFIED BY pw USING 
'HOST_NAME:PORT/SERVICE_NAME_SID'