Select em N bancos

Dúvidas, dicas e truques de SQL, Select, Update, Delete, cláusulas, operações com joins, Funções em SQLs, etc
Trevisolli
Moderador
Moderador
Mensagens: 2016
Registrado em: Qua, 12 Jan 2005 3:25 pm
Localização: Araraquara - SP

Pessoal, bom dia.

Gostaria de saber se, no Oracle, existe uma forma de, uma mesma sessão, eu dar um select num outro banco, como por exemplo, se faz no SQL Server.

Exemplo:

Estou logado como Paulo no Banco A.

Gostaria de dar um select do tipo:

select bancoB.campo from table

Muito obrigado.

Abraço,


Paulo Trevisolli
Avatar do usuário
dr_gori
Moderador
Moderador
Mensagens: 5024
Registrado em: Seg, 03 Mai 2004 3:08 pm
Localização: Portland, OR USA
Contato:
Thomas F. G

Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered

Olá trevisolli

Você pode criar um DB LINK entre os bancos. Para isso, você deve ter privilégio de CREATE DB LINK. Daí você cria dessa forma:

Por exemplo, abaixo eu estou conectado no banco de testes. Daí eu dou o seguinte comando pra criar um dblink para o banco de produção:

Selecionar tudo

create database link NOME_DO_DBLINK
connect to USER_DO_BANCO_QUENTE identified by SENHA_DO_BANCO_QUENTE
using 'NOME_DO_BANCO_QUENTE'; 
É claro, antes disso, você tem que verificar se o TNSNAMES.ORA do servidor de proução tem uma referencia para o banco de testes.

Daí, é só você fazer um select dessa forma:

Selecionar tudo

SELECT x.* FROM TABELA@NOME_DO_DBLINK x
WHERE etc.etc.etc...
É claro, o que eu citei acima não é nada seguro. (tipo, dessa forma, qualquer um da base de testes terá acesso a base de produção. Normalmente, se faria o CONTRARIO disso. Ou seja, criar um dblink na base de produção apontando pra base de testes).

Outra coisa que você não deve fazer por questões de segurança é criar um public database link. OU seja, qualquer um poderá ter acesso a esse banco.


:-o
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 10 visitantes