Selecionar tudo
select distinct div_cod, div_bem, div_dev_cod
into v_div_cod, v_divbem, v_dev_cod
from divida
where div_pro_cod = C_PRODUTO
and div_nrocontrato = p_contrato
and DIV_VALIDO = 1;
--Insere nova informação
--Altera algum dado recebido
--Se não tem nada novo, não faz nada.
v_posIni := INSTR(v_divbem,'*',1,1)-1;
/*case
when (nvl(length(trim(REGEXP_SUBSTR(v_divbem,'[^|]*,',1,4))),0) <= 2) then
case
when (nvl(length(trim(REGEXP_SUBSTR(v_divbem,'[^|]*,',1,4))),0) = 0) then
INSTR(v_divbem,'|',1,3)
else
INSTR(v_divbem,trim(REGEXP_SUBSTR(v_divbem,'[^|]*,',1,4)),1,1) end
when length(trim(REGEXP_SUBSTR(v_divbem,'[^|]*,',1,3))) <= 2 then
case
when (nvl(length(trim(REGEXP_SUBSTR(v_divbem,'[^|]*,',1,3))),0) = 0) then
INSTR(v_divbem,'|',1,2)
else
INSTR(v_divbem,trim(REGEXP_SUBSTR(v_divbem,'[^|]*,',1,3)),1,1) end
when length(trim(REGEXP_SUBSTR(v_divbem,'[^|]*,',1,2))) <= 2 then
case
when (nvl(length(trim(REGEXP_SUBSTR(v_divbem,'[^|]*,',1,2))),0) = 0) then
INSTR(v_divbem,'|',1,1)
else
INSTR(v_divbem,trim(REGEXP_SUBSTR(v_divbem,'[^|]*,',1,2)),1,1) end
when length(trim(REGEXP_SUBSTR(v_divbem,'[^|]*,'))) <= 2 then
case
when (nvl(length(trim(REGEXP_SUBSTR(v_divbem,'[^|]*,'))),0) = 0) then
INSTR(v_divbem,'|',1,1)
else
INSTR(v_divbem,trim(REGEXP_SUBSTR(v_divbem,'[^|]*,')),1,1) end
else
0
end;*/
v_AjusteBem := v_origem || '|' || v_contador || '|' || v_data || ' ';
if v_AjusteBem <> nvl(substr(v_divbem,1,v_posIni),' ')
then
if v_posIni =0 then
v_posIni :=1;
end if;
if substr(v_divbem,v_posIni,1)= ' ' then
v_posIni := v_posIni +1;
end if;
update divida
set div_bem = v_AjusteBem || substr(v_divbem,v_posIni,255) ,div_dataalteracao=sysdate
where div_nrocontrato = p_contrato
and div_pro_cod = C_PRODUTO
and DIV_VALIDO = 1
and div_cod=v_div_cod;
indicarRadarRenovDevedor(v_dev_cod);