Creo que las funciones generan una transaccion asi que hasta q no termine de ejecutar no vas a ver reflejados los cambios. Creo que es asi.
El día 22 de enero de 2009 7:29, Gabriel Ferro <gabrielrfe...@yahoo.com.ar> escribió: > 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 > Visitá http://ar.mujer.yahoo.com/cocina/ -- TIP 3: Si encontraste la respuesta a tu problema, publícala, otros te lo agradecerán