sql >> Databasteknik >  >> RDS >> Oracle

Frågetabell från en annan ORACLE-databas

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] ;



  1. Återställa Django postgresql-databasen? spolning fungerar inte

  2. Frågan fungerar på Oracle 11g men misslyckas på Oracle 8i

  3. Hur lägger man till ett SSL-certifikat (ca-cert) till node.js miljövariabler för att ansluta till Digital Ocean Postgres Managed Database?

  4. Hur lagrar man summan av en rads multipla kolumn på samma tabells samma rads en annan kolumn?