prueba así:
Código sql:
Ver originalCREATE OR REPLACE FUNCTION xcambio_fecha(TIMESTAMP)
RETURNS VARCHAR AS $body$
DECLARE
var_fecha alias FOR $1;
res_fecha record;
BEGIN
SELECT INTO res_fecha (CASE
WHEN EXTRACT(MONTH FROM var_fecha)=1 THEN (EXTRACT(DAY FROM var_fecha)||'-Ene-'||EXTRACT(YEAR FROM var_fecha))::VARCHAR
WHEN EXTRACT(MONTH FROM var_fecha)=4 THEN (EXTRACT(DAY FROM var_fecha)||'-Abr-'||EXTRACT(YEAR FROM var_fecha))::VARCHAR
WHEN EXTRACT(MONTH FROM var_fecha)=8 THEN (EXTRACT(DAY FROM var_fecha)||'-Ago-'||EXTRACT(YEAR FROM var_fecha))::VARCHAR
WHEN EXTRACT(MONTH FROM var_fecha)=12 THEN (EXTRACT(DAY FROM var_fecha)||'-Dic-'||EXTRACT(YEAR FROM var_fecha))::VARCHAR
ELSE to_char(var_fecha,'dd-Mon-YYYY')
END) AS fecha;
RETURN res_fecha.fecha::VARCHAR;
END;
$body$ LANGUAGE 'plpgsql';