From: | Alejandro Carrillo <fasterzip(at)yahoo(dot)es> |
---|---|
To: | Lazaro Rubén García Martinez <lgarciam(at)vnz(dot)uci(dot)cu> |
Cc: | "anasmail(at)unnoba(dot)edu(dot)ar" <anasmail(at)unnoba(dot)edu(dot)ar>, "pgsql-es-ayuda(at)postgresql(dot)org" <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: [pgsql-es-ayuda] consulta función |
Date: | 2011-11-22 13:59:01 |
Message-ID: | 1321970341.14435.YahooMailNeo@web27405.mail.ukl.yahoo.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
o devuelve como parametro un refcursor, asi podrás devolver cualquier resultado en una funcion
>________________________________
> De: Lazaro Rubén García Martinez <lgarciam(at)vnz(dot)uci(dot)cu>
>Para: Ana Claudia Smail <anasmail(at)unnoba(dot)edu(dot)ar>; "pgsql-es-ayuda(at)postgresql(dot)org" <pgsql-es-ayuda(at)postgresql(dot)org>
>Enviado: martes 22 de noviembre de 2011 8:47
>Asunto: RE: [pgsql-es-ayuda] consulta función
>
>
>
>Fíjate en la estructura de la
tabla, acabo de reproducir tu error, y este se debe a que la primera columna de
tu tabla es de tipo entero y en la función estas devolviendo un varchar como
primera columna. Te recomiendo que cambies el orden en el que devuelves las
cosas en la consulta definida en la función.
>
>Saludos.
>
>De:pgsql-es-ayuda-owner(at)postgresql(dot)org
[mailto:pgsql-es-ayuda-owner(at)postgresql(dot)org] En nombre de Ana Claudia
Smail
>Enviado el: martes, 22 de noviembre de 2011 08:46
>Para: pgsql-es-ayuda(at)postgresql(dot)org
>Asunto: [pgsql-es-ayuda] consulta función
>
>Hola a todos!
>Estoy teniendo un problema con una función
en progresql 8.4:
>CREATE OR REPLACE FUNCTION
getLibres(varchar(20), varchar(20)) RETURNS SETOF tabla1 AS
>$BODY$
>DECLARE
>r tabla1%rowtype;
>BEGIN
>IF $2 IS NULL THEN
>
FOR r IN SELECT CAST($1 AS VARCHAR(255)),count(*) FROM tabla1
>
WHERE tabla1.confirmada = '1' group by 1 order by 1
>
LOOP
>
RETURN NEXT r;
>
END LOOP;
>END IF;
>RETURN;
>END
>$BODY$
>LANGUAGE 'plpgsql' ;
>
>Cuando ejecuto SELECT * FROM
getLibres('campo1',NULL);
>
>Me tira el siguiente error:
>ERROR: la sintaxis de entrada no es
válida para integer: «campo1»
>CONTEXT: PL/pgSQL function
"getlibres" line 5 at bucle FOR en torno a registros de un SELECT
>
>Porqué me toma el campo como integer?
>Gracias por su tiempo
>ANA
>
>
From | Date | Subject | |
---|---|---|---|
Next Message | Ana Claudia Smail | 2011-11-22 14:13:38 | RE: [pgsql-es-ayuda] consulta función |
Previous Message | dali aparicio | 2011-11-22 13:57:50 | Re: [pgsql-es-ayuda] consulta función |