sql >> Database >  >> RDS >> Oracle

Querytabel uit een andere ORACLE-database

Voor Oracle,

CREATE DATABASE LINK ...

bijv.

Met een databaselink die is gemaakt en getest, kunt u een query uitvoeren (van de stijl die u hebt laten zien) om rijen op te halen uit een externe database.

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

VERVOLG

OPMERKING:In Oracle verwijst de term "database" naar de gegevensbestanden en logbestanden die zijn gekoppeld aan een Oracle "instantie". Om gegevens uit een tweede "database" op te halen, heeft u een tweede verbinding met de andere database nodig. Oracle biedt een faciliteit die een "databaselink" wordt genoemd. Hierdoor kan een sessie (verbinding) met een database-instantie verbinding maken met een andere database-instantie. (Zonder deze faciliteit zou een client twee afzonderlijke verbindingen moeten maken en de twee databases afzonderlijk moeten opvragen.)

Als deze vraag betrekking heeft op het opvragen van twee afzonderlijke "schema's" binnen dezelfde database, zolang de gebruiker voldoende privileges heeft voor objecten in het tweede schema, kan de identifier worden gekwalificeerd met de naam van het schema, bijvoorbeeld

SELECT * FROM UATDEVORADB.TABLE_NAME

Om toegang te krijgen tot gegevens in een aparte database, kan een databaselink worden gebruikt...

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

(Hiervoor is een passende vermelding nodig in het tnsnames.ora-bestand op de Oracle-server, of de orakel-namenserver, of de verbindingsdetails kunnen worden gespeld in plaats van een tnsnames.ora-invoer, zoiets als:

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

Als de "gebruiker" die is opgegeven in de databasekoppeling verschilt van de "eigenaar" van de tabel op het externe systeem en er geen synoniem is dat naar de tabel verwijst, moet de tabel-ID worden gekwalificeerd met de eigenaar...

SELECT * FROM [email protected] ;



  1. Wanneer cursors te sluiten met MySQLdb

  2. Hoe te repareren "Procedure verwacht parameter '@statement' van het type 'ntext/nchar/nvarchar'." Fout in SQL Server

  3. Mysql-som van records per maand voor de afgelopen 12 maanden

  4. Een opgeslagen procedure uitvoeren in een andere opgeslagen procedure in SQL-server