Re: [pgsql-es-ayuda] consulta función

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
>
>

In response to

Browse pgsql-es-ayuda by date

  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