Mira tengo lo siguiente, cada vez que actualizo retorno null sitodo sale bien, en caso contrario le indico que me devuelda un mensaje..
CREATE OR REPLACE FUNCTION cl_cargo_modifica(mcodigo integer, mnombre character varying, mfirma character varying, mclinica integer) RETURNS character varying AS $BODY$ DECLARE mfecha timestamp; mcg_cod integer; BEGIN select into mfecha current_date; UPDATE cargo SET cg_nombre= mnombre , cg_modificado=mfecha, cg_modificado_por=mfirma WHERE cg_cod = mcodigo AND cl_cod = mclinica; IF NOT FOUND THEN RAISE EXCEPTION 'Error al Tratar de Modificar el cargo ((%))', mnombre; RAISE NOTICE 'Error al Tratar de Modificar el cargo ((%))', mnombre; RETURN EXCEPTION; END IF; RETURN NULL; END; $BODY$ LANGUAGE 'plpgsql' VOLATILE espero que te sirva -- Cesar Erices Vergara Ingeniero en Gestión Informática Analista de Sistema Santiago - Chile