Masters tengo la funcion

CREATE OR REPLACE FUNCTION padrones.completadocu()
  RETURNS void AS
$BODY$
declare
registro RECORD;
num character varying;
clav bigint;
cadena text;
i integer;
begin
FOR registro IN SELECT numdoc,clave from padrones.personas LOOP
 if (length(registro.numdoc)<12) then
   num=registro.numdoc;
   clav=registro.clave;
   for i in 1..12-length(registro.numdoc) loop
      num='0'||num;
   end loop;
   UPDATE padrones.personas SET numdoc=num WHERE padrones.personas.clave=clav;
   raise NOTICE 'cambio % clave %',num,registro.clave;
-- else
--   raise NOTICE 'Nocambio %',registro.numdoc;
  end if; 
END LOOP; 
raise NOTICE 'FIN PROCESO';
end;
$BODY$
  LANGUAGE 'plpgsql' VOLATILE
  COST 100;
ALTER FUNCTION padrones.completadocu() OWNER TO gferro;


    
La cosa es que la tabla es de varios Gigas y mientras se esta ejecutando la 
funcion hago un select de un registro que teoricamente ya actualizo, pero me 
muestra los valores viejos de numdoc, crei que la funcion no andaba asi que le 
agregue un EXIT; despues del update y verifique que si actualizo el registro 
que habia encontrado, entonces anda bien
No uso ningun commnit o roolback solo ingreso pgsql -d base -v ON_ERROR_STOP y 
luego select padrones.completadocu();
¿Esto es normal?



      Yahoo! Cocina
Recetas prácticas y comida saludable
http://ar.mujer.yahoo.com/cocina/

Responder a