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
  

Mensagemem Ter, 15 Nov 2005 9:07 am

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
Trevisolli
Localização: Araraquara - SP

Mensagemem Ter, 15 Nov 2005 8:56 pm

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:
Código: Selecionar todos
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:
Código: Selecionar todos
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
dr_gori
Localização: Portland, OR USA

Thomas F. G

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



Voltar para SQL

Quem está online

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