För Oracle,
CREATE DATABASE LINK ...
t.ex.
Med en databaslänk skapad och testad kan du göra en fråga (av stilen du visade) för att hämta rader från en fjärrdatabas.
Referens:http://docs.oracle.com /cd/E11882_01/server.112/e41084/statements_5005.htm#SQLRF01205
UPPFÖLJNING
OBS:I Oracle hänvisar termen "databas" till de datafiler och loggfiler som är associerade med en Oracle-"instans". För att hämta data från en andra "databas" betyder det att du behöver en andra anslutning till den andra databasen. Oracle tillhandahåller en funktion som kallas en "databaslänk". Det gör att en session (anslutning) till en databasinstans kan ansluta till en annan databasinstans. (Utan denna möjlighet skulle en klient behöva skapa två separata anslutningar och skulle behöva fråga de två databaserna separat.)
Om den här frågan gäller att fråga från två separata "scheman" inom samma databas, så länge som användaren har tillräckliga privilegier på objekt i det andra schemat, kan identifieraren kvalificeras med namnet på schemat, t.ex.
SELECT * FROM UATDEVORADB.TABLE_NAME
För att komma åt data i en separat databas kan en databaslänk användas...
CREATE DATABASE LINK UADEVORADB
CONNECT TO user
IDENTIFIED BY password
USING 'uadevoradb' ;
(Detta kommer att kräva en lämplig matchande post i filen tnsnames.ora på Oracle-servern, eller Oracle-namnservern, eller så kan anslutningsdetaljerna stavas i stället för en tnsnames.ora-post, något som:
CREATE DATABASE LINK UADEVORADB
CONNECT TO user IDENTIFIED BY password
USING '(DESCRIPTION=
(ADDRESS=(PROTOCOL=TCP)(HOST=uadevorahost1)(PORT=1521))
(CONNECT_DATA=(SERVICE_NAME=uadevoradb.domaindb)))'
Om "användaren" som anges i databaslänken skiljer sig från "ägaren" till tabellen på fjärrsystemet, och det inte finns någon synonym som refererar till tabellen, måste tabellidentifieraren vara kvalificerad med ägaren...
SELECT * FROM [email protected] ;