Olá!
Sou novo por aqui e gostaria da ajuda de vocês...
Estou com dúvidas sobre o funcionamento do comando merge.
eis o caso:
tenho uma tabela origem(tb_origem) e uma tabela destino(tb_destino);
as tabelas são enormes, e, para otimização do processo, busco sempre a melhor solução;
a tb_destino é carregada mensalmente com as possíveis atualizações da tb_origem;
para isso, utilizo o comando merge, onde rodo um update, caso haja correspondente na tabela destino, ou faço insert, caso a chave do registro não seja encontrada.
até aqui eis uma situação normal.
a minha dúvida é:
ex:
merge into tb_destino d
using(select * from tb_origem) o
on (d.chave = o.chave)
when matched then
update
when not matched then
insert
caso o registro seja correspondente nas duas tabelas, automaticamente ele faz update;
mas, e se ele encontrou o seu correspondente, mas não houve nenhum tipo de alteração no registro? ele faz update assim mesmo???
se sim, significaria q ele atualiza todo o registro mesmo que seja com os mesmos valores...
alguém sabe ou já teve essa dúvida?
abs
Dúvidas sobre o MERGE em Oracle
-
- Rank: DBA Pleno
- Mensagens: 232
- Registrado em: Qui, 26 Nov 2009 1:05 pm
- Localização: SP
Ricardo H. Tajiri
Sim, mas você pode usar a cláusula WHERE no comando de update...mas, e se ele encontrou o seu correspondente, mas não houve nenhum tipo de alteração no registro? ele faz update assim mesmo???
-
- Rank: Estagiário Júnior
- Mensagens: 2
- Registrado em: Qua, 30 Mar 2011 2:10 pm
- Localização: niteroi - RJ
po, blza.
assim eu já consigo passar pelos campos q não sofreram alterações...
agora só falta eu conseguir atualizar apenas as colunas que foram alteradas...rs
minha tabela tem cerca de 40 colunas e acho desnecessário atualizar todo o registro por conta de uma vírgula que foi inserida na coluna 37...
vlw!
assim eu já consigo passar pelos campos q não sofreram alterações...
agora só falta eu conseguir atualizar apenas as colunas que foram alteradas...rs
minha tabela tem cerca de 40 colunas e acho desnecessário atualizar todo o registro por conta de uma vírgula que foi inserida na coluna 37...
vlw!
-
- Informação
-
Quem está online
Usuários navegando neste fórum: Bing [Bot] e 1 visitante