ao inserir um registro ele deve executar o loop e logo em seguida commitar pois tera casos q existira campos nulos onde o loop tratara se possivel for.
EX.: dia [10/10/2009] [null] campo 2 é nulo e deve reseber a maior data inicial -1 dia quando os codigos forem iguais.
inserindo [16/10/2009] [22/10/2009] ou seja o campo nulo deve receber 15/10/2009 e em seguida comitar.
não sei se intenderam bem mais algo assim... estou colocando a baixo o meu codigo atual. ele esta num procedimento onde eu vo ta chamando no key-commit.
cursor wc_data is
select max(dt_inicio_vigencia)-1 dt_inicio_vigencia
from tolerancia_limite_preço
where cd_divisao_gerencial = :T1065.cd_divisao_gerencial;
wr_data wc_data%rowtype;
BEGIN
open wc_data;
loop
fetch wc_data
into wr_data;
EXIT WHEN wc_data%notfound;
if :T1065.dt_fim_vigencia is null then
IF wr_data.dt_inicio_vigencia > :T1065.dt_INICIO_vigencia THEN
:T1065.dt_fim_vigencia := (wr_data.dt_inicio_vigencia);
END IF;
end if;
end loop;
close wc_data;
exception
when others then
alerta('KEY-COMMIT','A',1);
END;
des de já vlw galera.