A query que eu passei anteriormente faz exatamente o que vc quer.
Update tab3 set Dsc = (select tab1.dsc from tab1 where tab1.id = tab3.id); Se vc quiser que apenas seja atualizado dos ids 20 a 30 pode fazer: Update tab3 set Dsc = (select tab1.dsc from tab1 where tab1.id = tab3.id) where tab3.id between 20 and 30; _____ De: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em nome de agpcardoso Enviada em: terça-feira, 19 de junho de 2007 19:51 Para: oracle_br@yahoogrupos.com.br Assunto: Re: RES: [oracle_br] DUVIDA - Update em LOTE O q está lento não é a query e sim a rotina em si pois está sendo varrido registro a registro. Essa query q vc me passou, para o q estou precisando não funciona, pois utilizando a query q me passou, vai estar sendo atualizado TODAS as dsc da TAB3 que me retornar na query (select tab1.dsc from tab1 where tab1.id = tab3.id) e não é isso q eu quero... O que eu quero é o seguinte: Tabela 3 | Tabela 1 | Id | Dsc |Id | Dsc | | | 1 | Alexandre |1 | Alexandre Cardoso 2 | Vanessa |2 | Vanessa Serrano 3 | fulano | NO SQL SERVER SE EU SIMPLESMENTE EXECUTAR O COMANDO ABAIXO 1 UNICA VEZ UPDATE TAB3 SET TAB3.DSC = TAB1.DSC FROM TAB1, TAB3 WHERE TAB1.ID = TAB3.ID A TABELA 3 VAI FICAR COM O SEGUINTE CONTEUDO Tabela 3 Id | Dsc | 1 | Alexandre Cardoso 2 | Vanessa Serrano 3 | fulano Gostaria de saber como fazer a mesma coisa no oracle da mesma maneira, sem precisar varrer registro a registro --- Em [EMAIL PROTECTED] <mailto:oracle_br%40yahoogrupos.com.br> os.com.br, "Fabio Santos" <[EMAIL PROTECTED]> escreveu > > Update tab3 set Dsc = (select tab1.dsc from tab1 where tab1.id = tab3.id) > > > > Não se essa query é igual a que vc diz estar lenta porque voce nao passou a > tal query. > > > > abraços > > > > > > _____ > > De: [EMAIL PROTECTED] <mailto:oracle_br%40yahoogrupos.com.br> os.com.br [mailto:[EMAIL PROTECTED] <mailto:oracle_br%40yahoogrupos.com.br> os.com.br] Em > nome de agpcardoso > Enviada em: terça-feira, 19 de junho de 2007 19:05 > Para: [EMAIL PROTECTED] <mailto:oracle_br%40yahoogrupos.com.br> os.com.br > Assunto: [oracle_br] DUVIDA - Update em LOTE > > > > 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] > [As partes desta mensagem que não continham texto foram removidas]