Olá agpcardoso,

pelo que eu entendi, a tabela 1 tem poucos registros enquanto a tabela 3 
tem muitos, correto?

UPDATE TAB3
SET TAB3.DSC = (SELECT DSC FROM TAB1 WHERE TAB1.ID = TAB3.ID)
WHERE TAB3.ID in (SELET ID FROM TAB1);

ou uma solução mais trabalhosa mas acredito que seja mais rápida (?)

begin
   for c1 in (SELECT ID, DSC FROM TAB1) loop
      update TAB3 set DSC = c1.DSC where ID = c1.ID;
   end loop;
end;

Boa Sorte,
Josir.

---
Estou alterando uma rotina de carga onde preciso fazer um update em
1 campo da tabela 3 de acordo c/ os dados q tiverem na tabela 1.

Na rotina ORIGINAL para cada registro da tabela 3 está sendo feito
um select na tabela 1 e atualizando a tabela 3 de acordo com o q
vier na tabela 1, porém devido a quantidade grande de registros
existentes nas 2 tabelas, essa rotina está MUITO LENTA.

NO SQL SERVER eu resolveria esse problema utilizando a query
descrita abaixo, porem no Oracle essa query não funciona.

Alguém saberia me dizer como posso fazer no oracle a mesma coisa q a
query abaixo faz no sql server???

Obrigado.

QUERY
##############################

UPDATE TAB3
SET TAB3.DSC = TAB1.DSC
FROM TAB1, TAB3
WHERE TAB1.ID = TAB3.ID


[As partes desta mensagem que não continham texto foram removidas]

Responder a