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]