esta es mi funcion......
CREATE OR REPLACE FUNCTION REC_GER(NUM_PRE1  int,
OBS TEXT,
PASA BIT,
MAT_REV CHAR(3))
  RETURNS void AS
$BODY$declare
 
begin
IF PASA = '1' then
	BEGIN
	UPDATE PRESTAMO SET OBS_REV = OBS, ESTADO = 'RG',  USR_REV = MAT_REV, FEC_REV =(select now()) WHERE NUM_PRE = NUM_PRE1;
	END;
ELSE
BEGIN	
	UPDATE PRESTAMO  SET OBS_REV = OBS , ESTADO = 'OG',  USR_REV = MAT_REV, FEC_REV =(select now()) WHERE NUM_PRE = NUM_PRE1;
END;
end if;
end;
$BODY$
  LANGUAGE 'plpgsql' VOLATILE;
ALTER FUNCTION REC_GER(NUM_PRE1  int,
OBS TEXT,
PASA BIT,
MAT_REV CHAR(3)) OWNER TO postgres;
 ejecuto y me sale lo sgte
 
ERROR: value too long for type character(3)
Estado SQL:22001
Contexto:SQL statement "UPDATE PRESTAMO SET OBS_REV =  $1 , ESTADO = 'RG', USR_REV =  $2 , FEC_REV =(select now()) WHERE NUM_PRE =  $3 "
PL/pgSQL function "rec_ger" line 6 at SQL statement
 
 
como ven los parametros estan pasando correctamente lo q no hace es devolver la fecha actual.....ya intente poniendole solo el now sin el select tampoco muestra tb utilice el current_date sin select pero nada..... 
  
 

