seria interessante utilizar o merge tbm. dá uma olhada nesse link
http://www.psoug.org/reference/merge.html O Merge é interessante pois ele faz Insert e Update ao mesmo tempo. Ele insere os registros que não existem na tabel e atualiza caso já exista. Não se engane com a versão do oracle desse tutorial. Já usei o Merge até com oracle 8 Atenciosamente. Oracle Merge Statements Version 11.1 Note: Primarily of value when moving large amounts of data in data warehouse situations. Merge Statement Demo MERGE <hint> INTO <table_name> USING <table_view_or_query> ON (<condition>) WHEN MATCHED THEN <update_clause> DELETE <where_clause> WHEN NOT MATCHED THEN <insert_clause> [LOG ERRORS <log_errors_clause> <reject limit <integer | unlimited>]; CREATE TABLE employee ( employee_id NUMBER(5), first_name VARCHAR2(20), last_name VARCHAR2(20), dept_no NUMBER(2), salary NUMBER(10)); INSERT INTO employee VALUES (1, 'Dan', 'Morgan', 10, 100000); INSERT INTO employee VALUES (2, 'Helen', 'Lofstrom', 20, 100000); INSERT INTO employee VALUES (3, 'Akiko', 'Toyota', 20, 50000); INSERT INTO employee VALUES (4, 'Jackie', 'Stough', 20, 40000); INSERT INTO employee VALUES (5, 'Richard', 'Foote', 20, 70000); INSERT INTO employee VALUES (6, 'Joe', 'Johnson', 20, 30000); INSERT INTO employee VALUES (7, 'Clark', 'Urling', 20, 90000); CREATE TABLE bonuses ( employee_id NUMBER, bonus NUMBER DEFAULT 100); INSERT INTO bonuses (employee_id) VALUES (1); INSERT INTO bonuses (employee_id) VALUES (2); INSERT INTO bonuses (employee_id) VALUES (4); INSERT INTO bonuses (employee_id) VALUES (6); INSERT INTO bonuses (employee_id) VALUES (7); COMMIT; SELECT * FROM employee; SELECT * FROM bonuses; MERGE INTO bonuses b USING ( SELECT employee_id, salary, dept_no FROM employee WHERE dept_no =20) e ON (b.employee_id = e.employee_id) WHEN MATCHED THEN UPDATE SET b.bonus = e.salary * 0.1 DELETE WHERE (e.salary < 40000) WHEN NOT MATCHED THEN INSERT (b.employee_id, b.bonus) VALUES (e.employee_id, e.salary * 0.05) WHERE (e.salary > 40000); SELECT * FROM bonuses; Evandro Giachetto Oracle SQL Expert Oracle Certified Associate evan...@clickinterativa.com.br Em 4 de março de 2010 09:03, Valtemir Araujo de Lima <valte...@govesa.com.br > escreveu: > > > UPDATE TABELA02 I > SET I.CLASS_FISC = (SELECT MAX(M.NCM) > FROM TABELA01 M > WHERE M.COD_ESTRUTURADO = I.CDPRODUTO) > WHERE I.NCM IS NULL > > o max é para garantir join com mais de uma linha sem erro. > > -----Mensagem original----- > De: Evandro Giachetto > [mailto:evandrogiache...@gmail.com<evandrogiachetto%40gmail.com> > ] > Enviada em: 4 de março de 2010 08:50 > Para: oracle_br@yahoogrupos.com.br <oracle_br%40yahoogrupos.com.br> > Assunto: Re: [oracle_br] dúvida update > > > insert into tabela02(CLASS_FISC) > select NCM from tabela01; > > Evandro Giachetto > Oracle SQL Expert > Oracle Certified Associate > evan...@clickinterativa.com.br <evandro%40clickinterativa.com.br> > > Em 4 de março de 2010 08:25, Tiago da Silva > <tiagodasil...@gmail.com <tiagodasilvap%40gmail.com>>escreveu: > > > > > > > Bom Dia a Todos! > > > > Estou Iniciando no grupo, estou com a seguinte duvida: > > > > Quero inserir os dados do campo M.NCM no campo I.CLASS_FISC. Estou como > > dúvida de como fazer esse update. > > > > select M.COD_ESTRUTURADO > > > > I.CDPRODUTO > > > > M.NCM > > > > I.CLASS_FISC > > > > from TABELA01 M, > > > > TABELA02 I > > > > where M.COD_ESTRUTURADO = I.CDPRODUTO > > > > and M.NCM is not null > > > > and I.CLASS_FISC is null > > > > Aguardo Retorno! > > > > [As partes desta mensagem que não continham texto foram removidas] > > > > > > > > [As partes desta mensagem que não continham texto foram removidas] > > ------------------------------------ > > ---------------------------------------------------------- > > ---------------------------------------------- > >Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de > inteira > responsabilidade de seus remetentes. > Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ > ---------------------------------------------------------- > ---------------------------------------------- > >Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package » Procedure > » Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE: > http://www.oraclebr.com.br/ > ---------------------------------------------------------- > -------------------------------------------- Links do Yahoo! Grupos > > > [As partes desta mensagem que não continham texto foram removidas] ------------------------------------ -------------------------------------------------------------------------------------------------------------------------- >Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de inteira >responsabilidade de seus remetentes. Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ -------------------------------------------------------------------------------------------------------------------------- >Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package » Procedure » >Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE: >http://www.oraclebr.com.br/ ------------------------------------------------------------------------------------------------------------------------ Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/oracle_br/ <*> Para sair deste grupo, envie um e-mail para: oracle_br-unsubscr...@yahoogrupos.com.br <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html