From: | Juanky Moral <juanky(dot)moral(at)gmail(dot)com> |
---|---|
To: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Error al usar SUM, COUNT,... en un record |
Date: | 2004-11-17 12:48:31 |
Message-ID: | 463a53a404111704489f0d175@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Hola este es mi primer mensaje a la lista y esta mi primera pregunta:
He creado una función plpgsql que devuelve un RECORD.
Cuando llamo la función sale este error:
ERROR: Query-specified return tuple and actual function return tuple
do not match
Si no utilizo las funciones agregadas SUM y COUNT en la query, la
función se ejecuta sin problemas.
¿Alguien sabe qué está pasando? (Uso Postgresql 7.3.2)
Este es el procedimiento (la query está simplificada para usar sólo un
parámetro):
CREATE OR REPLACE FUNCTION consumo_cliente (varchar,int,int) RETURNS RECORD AS '
DECLARE
v_cif ALIAS FOR $1;
v_anyo ALIAS FOR $2;
v_mes ALIAS FOR $3;
v_fila RECORD;
BEGIN
SELECT INTO v_fila sum(horas) as horas, count(*) as avisos
FROM asistencia
GROUP BY cif HAVING cif=v_cif;
RETURN v_fila;
END;
'language 'plpgsql';
La tabla asistencia tiene esta estructura:
cif | character varying(9)
fecha | timestamp without time zone
horas | integer
La llamada a la función la hago así:
prueba=# select * from consumo_cliente('1',2003,1) as (horas integer,
avisos integer);
From | Date | Subject | |
---|---|---|---|
Next Message | Alejandro D. Burne | 2004-11-17 13:01:27 | Re: error, urgente |
Previous Message | Alvaro Herrera | 2004-11-17 12:27:51 | Re: Duda sobre conexion a Postgres |