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/