Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Abfragetabelle aus einer anderen ORACLE-Datenbank

Für Oracle

CREATE DATABASE LINK ...

zB

Mit einem erstellten und getesteten Datenbanklink können Sie eine Abfrage (in der von Ihnen gezeigten Art) durchführen, um Zeilen aus einer entfernten Datenbank abzurufen.

Referenz:http://docs.oracle.com /cd/E11882_01/server.112/e41084/statements_5005.htm#SQLRF01205

NACHVERFOLGUNG

HINWEIS:In Oracle bezieht sich der Begriff „Datenbank“ auf die Datendateien und Protokolldateien, die einer Oracle-„Instanz“ zugeordnet sind. Um Daten aus einer zweiten „Datenbank“ abzurufen, benötigen Sie eine zweite Verbindung zu der anderen Datenbank. Oracle stellt eine Einrichtung bereit, die als "Datenbankverknüpfung" bezeichnet wird. Dadurch kann eine Sitzung (Verbindung) zu einer Datenbankinstanz eine Verbindung zu einer anderen Datenbankinstanz herstellen. (Ohne diese Einrichtung müsste ein Client zwei separate Verbindungen herstellen und die beiden Datenbanken separat abfragen.)

Wenn sich diese Frage auf die Abfrage von zwei separaten "Schemata" innerhalb des gleichen bezieht Datenbank, solange der Benutzer über ausreichende Berechtigungen für Objekte im zweiten Schema verfügt, kann der Bezeichner mit dem Namen des Schemas qualifiziert werden, z. B.

SELECT * FROM UATDEVORADB.TABLE_NAME

Um auf Daten einer separaten Datenbank zuzugreifen, kann ein Datenbanklink verwendet werden...

CREATE DATABASE LINK UADEVORADB 
  CONNECT TO user 
  IDENTIFIED BY password
  USING 'uadevoradb' ;

(Dies erfordert einen entsprechenden übereinstimmenden Eintrag in der Datei tnsnames.ora auf dem Oracle-Server oder dem Oracle-Namensserver, oder die Verbindungsdetails können anstelle eines tnsnames.ora-Eintrags geschrieben werden, etwa so:

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)))'

Wenn sich der im Datenbanklink angegebene „Benutzer“ vom „Eigentümer“ der Tabelle auf dem entfernten System unterscheidet und es kein Synonym gibt, das auf die Tabelle verweist, muss die Tabellenkennung mit dem Eigentümer qualifiziert werden...

SELECT * FROM [email protected] ;