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/