Re: [oracle_br] Utilização do Comando Merge
Por exemplo: Tenho tabela tb_origem e tb_destino tb_origem possui 10 reg. que não tem na tb_destino e possui 15 que possuim em ambos, porém dos 15, 10 foram modificados. Desta forma ao executar o merge eu queria que ele fizess da seguinte forma: 20 merge 10 Inserts 10 Updates Mas ele atualiza todos, com isso fica da seguinte forma: 25 Merge 10 inserts 15 Updates -- Atenciosamente Francisco Porfirio Ribeiro Neto [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] Utilização do Comando Merge
?? Não entendi qual a sua necessidade. 2008/8/28 francisco porfirio <[EMAIL PROTECTED]> > Marcio, xou de bola esse site > > Pessoa queria mais uma ajuda > > Tipo ele ta comparando apenas pela pk tendo igual ele sempre altera os > registros. Quero que ele altere apenas quando estes registros forem > diferentes. Coloquei as clausulas no on, mas não ta funcionando. Com isso > esta mais ou menos assim. > > BEGIN > MERGE INTO inf_coberturas M > USING t.inf_coberturas T > ON (m.cob_codigo_cobertura = t.cob_codigo_cobertura > AND (m.cob_descricao = t.cob_descricao > OR m.cob_mapa_cobertura = t.cob_mapa_cobertura > OR m.cob_cod_intercambio_ptu = t.cob_cod_intercambio_ptu > OR m.cob_mapa_alterado = t.cob_mapa_alterado)) > WHEN MATCHED THEN UPDATE SET m.cob_descricao = t.cob_descricao, > m.cob_mapa_cobertura = t.cob_mapa_cobertura > WHEN NOT MATCHED THEN INSERT > VALUES(CASE etl.merge_counter(etl.c_inserting) WHEN 0 > THEN t.cob_codigo_cobertura END, > t.cob_descricao,t.cob_mapa_cobertura, > t.cob_cod_intercambio_ptu, > t.cob_mapa_alterado); > > DBMS_OUTPUT.PUT_LINE(TO_CHAR(SQL%ROWCOUNT) || ' - Linhas > merged.'); > dbms_output.put_line(TO_CHAR(etl.get_merge_insert_count) ||' - Linhas > Inseridas'); > dbms_output.put_line(TO_CHAR(etl.get_merge_update_count( SQL%ROWCOUNT )) > ||' - Linhas Alteradas'); > END; > > > -- > Atenciosamente > Francisco Porfirio Ribeiro Neto > > [As partes desta mensagem que não continham texto foram removidas] > > > -- Marcio Portes http://mportes.blogspot.com [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] Utilização do Comando Merge
Marcio, xou de bola esse site Pessoa queria mais uma ajuda Tipo ele ta comparando apenas pela pk tendo igual ele sempre altera os registros. Quero que ele altere apenas quando estes registros forem diferentes. Coloquei as clausulas no on, mas não ta funcionando. Com isso esta mais ou menos assim. BEGIN MERGE INTO inf_coberturas M USING t.inf_coberturas T ON (m.cob_codigo_cobertura = t.cob_codigo_cobertura AND (m.cob_descricao = t.cob_descricao OR m.cob_mapa_cobertura = t.cob_mapa_cobertura OR m.cob_cod_intercambio_ptu = t.cob_cod_intercambio_ptu OR m.cob_mapa_alterado = t.cob_mapa_alterado)) WHEN MATCHED THEN UPDATE SET m.cob_descricao = t.cob_descricao, m.cob_mapa_cobertura = t.cob_mapa_cobertura WHEN NOT MATCHED THEN INSERT VALUES(CASE etl.merge_counter(etl.c_inserting) WHEN 0 THEN t.cob_codigo_cobertura END, t.cob_descricao,t.cob_mapa_cobertura, t.cob_cod_intercambio_ptu, t.cob_mapa_alterado); DBMS_OUTPUT.PUT_LINE(TO_CHAR(SQL%ROWCOUNT) || ' - Linhas merged.'); dbms_output.put_line(TO_CHAR(etl.get_merge_insert_count) ||' - Linhas Inseridas'); dbms_output.put_line(TO_CHAR(etl.get_merge_update_count( SQL%ROWCOUNT )) ||' - Linhas Alteradas'); END; -- Atenciosamente Francisco Porfirio Ribeiro Neto [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] Utilização do Comando Merge
http://www.quest-pipelines.com/newsletter-v4/0903_D.htm 2008/8/27 francisco porfirio <[EMAIL PROTECTED]> > Pessoal... > > Sei que muitos já devem conhecer este comando, mas para aqueles que não > conhecem, vai uma boa dica para fazer algumas migrações mais simples. Com > esse comando vc consegue tanto contemplar novos registros de uma tabela > como > atualizar os que foram alterados. > > A sintaxe é mais ou menos com esta: > > MERGE INTO tb_destino d > USING tb_origem o > ON (d.codigo = o.codigo) > WHEN MATCHED THEN d.descricao = o.descricao > WHEN not MATCHED THEN > INSERT (d.codigo,d.descricao) > VALUES (d.codigo, d.descricao); > > Para aqueles que já utilizaram, vocês sabem me informar se tem alguma forma > de o merge me retornar quantas linhas foram atualizadas e quantas foram > inseridas? > > Agradeço desde já... > > -- > Atenciosamente > Francisco Porfirio Ribeiro Neto > > [As partes desta mensagem que não continham texto foram removidas] > > > -- Marcio Portes http://mportes.blogspot.com [As partes desta mensagem que não continham texto foram removidas]
[oracle_br] Utilização do Comando Merge
Pessoal... Sei que muitos já devem conhecer este comando, mas para aqueles que não conhecem, vai uma boa dica para fazer algumas migrações mais simples. Com esse comando vc consegue tanto contemplar novos registros de uma tabela como atualizar os que foram alterados. A sintaxe é mais ou menos com esta: MERGE INTO tb_destino d USING tb_origem o ON (d.codigo = o.codigo) WHEN MATCHED THEN d.descricao = o.descricao WHEN not MATCHED THEN INSERT (d.codigo,d.descricao) VALUES (d.codigo, d.descricao); Para aqueles que já utilizaram, vocês sabem me informar se tem alguma forma de o merge me retornar quantas linhas foram atualizadas e quantas foram inseridas? Agradeço desde já... -- Atenciosamente Francisco Porfirio Ribeiro Neto [As partes desta mensagem que não continham texto foram removidas]