For Oracle,
CREATE DATABASE LINK ...
f.eks.
Med et databaselink oprettet og testet kan du lave en forespørgsel (af den stil, du viste) for at hente rækker fra en ekstern database.
Reference:http://docs.oracle.com /cd/E11882_01/server.112/e41084/statements_5005.htm#SQLRF01205
OPFØLGNING
BEMÆRK:I Oracle refererer udtrykket "database" til de datafiler og logfiler, der er knyttet til en Oracle "instans". For at hente data fra en anden "database" betyder det, at du har brug for en anden forbindelse til den anden database. Oracle tilbyder en facilitet kaldet et "databaselink". Det tillader en session(forbindelse) til en databaseinstans at oprette forbindelse til en anden databaseinstans. (Uden denne facilitet ville en klient skulle oprette to separate forbindelser og skulle forespørge de to databaser separat.)
Hvis dette spørgsmål vedrører forespørgsler fra to separate "skemaer" inden for samme database, så længe brugeren har tilstrækkelige rettigheder på objekter i det andet skema, kan identifikatoren kvalificeres med navnet på skemaet, f.eks.
SELECT * FROM UATDEVORADB.TABLE_NAME
For at få adgang til data på en separat database, kan et databaselink bruges...
CREATE DATABASE LINK UADEVORADB
CONNECT TO user
IDENTIFIED BY password
USING 'uadevoradb' ;
(Dette vil kræve en passende matchende indgang i tnsnames.ora-filen på Oracle-serveren, eller Oracle-navneserveren, eller forbindelsesdetaljerne kan staves i stedet for en tnsnames.ora-indgang, sådan 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)))'
Hvis "brugeren" angivet i databaselinket adskiller sig fra "ejeren" af tabellen på fjernsystemet, og der ikke er noget synonym, der refererer til tabellen, skal tabel-id'et være kvalificeret med ejeren...
SELECT * FROM [email protected] ;