Social Icons


Aprenda Oracle investindo pouco, por assinatura, no "Portal ABC do Oracle"

30 de abr de 2019

É possível criar sinônimos que apontam para objetos remotos?




     Semana passada descobri algo simples, mas interessante, e que talvez lhe seja útil... então resolvi compartilhar a descoberta através deste post. Por causa de uma demanda de consolidação de bancos de dados que irá ocorrer daqui há alguns meses, na empresa em que trabalho, meu chefe me fez a seguinte pergunta: - Fábio, é possível criar sinônimos apontando para objetos em bancos de dados remotos?

     Qual foi a minha resposta? - Não sei, preciso verificar! Isso era algo que eu nunca havia precisado criar, então tive que pesquisar e testar, e descobri que sim, é possível! E descobri mais: é possível criar sinônimos para objetos remotos que nem existem, pois nenhuma validação é executada para validar o objeto remoto no momento em que o sinônimo é criado. Para entender melhor, veja os scripts e testes realizados abaixo:

1- Na Imagem 01 foi criado um sinônimo chamado UF para uma tabela (que existe e foi verificada na linha 1 do script da Imagem 01) chamada UF do schema ECOMMERCE, de um banco de dados remoto que será acessado através do dblink DB_TESTE. Em seguida foi executado um SELECT nesse sinônimo, e o resultado foi retornado com sucesso!


Imagem 01 - Criando sinônimo para um objeto remoto (existente)



2- Veja agora na Imagem 02 que foi criado um sinônimo chamado OBJ1 para um suposto objeto (que não existe, conforme verificação da linha 1 do script da Imagem 02) também chamado OBJ1, de um banco de dados remoto que será acessado através do dblink DB_TESTE. Em seguida foi executado um SELECT nesse sinônimo e o resultado foi um erro, o que já era de se esperar, pois o objeto não existe!



Resumo da Ópera: Sim, é possível criar sinônimos que apontam para objetos remotos, e até mesmo para algo que nem existe no banco de dados remoto!

0 comentários:

Postar um comentário

 

LINKS ÚTEIS

Suporte remoto alunos

Seguidores

Meu One Drive (antigo Sky Drive)