Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

celsotsf

Comparar registros de duas tabelas e inserir ou atualizar caso exista

Recommended Posts

Boa tarde,

Estou com grande dificuldade em na atualização de registros de dois bancos diferentes.

Tenho uma tabela como se fosse uma interface no BD_Oracle e tenho uma tabela idêntica no BD_Mysql manualmente eu consigo inserir os registros do BD_Oracle no BD_Mysql, mas tenho que automatizar. Minha ideia é comparar se esse registro já existe no BD_Mysql e atualizar se não existir eu tenho que inserir.

Eu pensei um uma procedure porque não consegui fazer a trigger funcionar via dblink.

Alguém tem uma idéia do que devo fazer?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa tarde Celso,

Não trabalho com Mysql, então são só sugestões simples.

Se você vai fazer isso uma só vez, pode gerar uma planilha em importar para o Oracle pelo sqldeveloper.

Ou você pode usar o recurso do Oracle Heterogeneous Services.

Eu testei uma vez com progress e funcionou. é meio chatinho mas funciona.

É via dblink.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Temos aqui onde trabalho um problema parecido , uma vez achei este artigo , mas não evoluimos qualquer estudo por falta de tempo e gente, se você evoluir algo até gostaria de saber.

[]´s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa tarde spernega, você poderia por favor enviar este material para o meu e-mail - luis.darin@gmail.com - estou precisando muito.

Obrigado!

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara eu não sei se você já chegou a testar, me desculpe se eu entendi errado, mas o seu fluxo é inserir no Oracle a partir do MySQL certo?

 

Você já chegou a olhar a sintaxe do MERGE no Oracle? Ele funciona através de DBLink e faz exatamente isso, mescla duas tabelas.

 

MERGE INTO <TABELA DESTINO> <ALIAS_DEST> USING (
  <SUA QUERY AQUI>@DBLINK
) <ALIAS_ORIG>
ON <ALIAS_ORIG>.<COLUNA_ORIGEM> = <ALIAS.DEST>.<COLUNA_DEST>

WHEN MATCHED THEN
UPDATE SET
<ALIAS_DEST>.<CAMPO> = <ALIAS.ORIG>.<CAMPO>

WHEN NOT MATCHED THEN
INSERT
(
  <CAMPO>,
  <CAMPO>,
  <CAMPO>
)
VALUES
(
  <VALOR>,
  <VALOR>,
  <VALOR>
);

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.