Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Consultar tabela de outro banco de dados ORACLE


Para Oráculo,
CREATE DATABASE LINK ...

por exemplo.

Com um link de banco de dados criado e testado, você pode fazer uma consulta (do estilo que você mostrou) para recuperar linhas de um banco de dados remoto.

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

ACOMPANHAMENTO

NOTA:No Oracle, o termo "banco de dados" refere-se aos arquivos de dados e arquivos de log associados a uma "instância" Oracle. Para recuperar dados de um segundo "banco de dados" significa que você precisa de uma segunda conexão com o outro banco de dados. A Oracle fornece um recurso chamado "link de banco de dados". Isso permite que uma sessão (conexão) a uma instância de banco de dados se conecte a outra instância de banco de dados. (Sem esse recurso, um cliente precisaria criar duas conexões separadas e precisaria consultar os dois bancos de dados separadamente.)

Se esta pergunta for sobre a consulta de dois "esquemas" separados dentro do mesmo banco de dados, desde que o usuário tenha privilégios suficientes em objetos no segundo esquema, o identificador pode ser qualificado com o nome do esquema, por exemplo,
SELECT * FROM UATDEVORADB.TABLE_NAME

Para acessar dados em um banco de dados separado, um link de banco de dados pode ser usado...
CREATE DATABASE LINK UADEVORADB 
  CONNECT TO user 
  IDENTIFIED BY password
  USING 'uadevoradb' ;

(Isso exigirá uma entrada correspondente apropriada no arquivo tnsnames.ora no servidor Oracle, ou no servidor de nomes oracle, ou os detalhes da conexão podem ser escritos no lugar de uma entrada tnsnames.ora, algo como:
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)))'

Se o "usuário" especificado no link do banco de dados for diferente do "proprietário" da tabela no sistema remoto e não houver sinônimo que faça referência à tabela, o identificador da tabela precisará ser qualificado com o proprietário...
SELECT * FROM [email protected] ;