Re: Pasar parametro string a funcion en 7.4.8

From: Miguel Rodríguez Penabad <penabad(at)gmail(dot)com>
To: "Calabaza Calabaza" <calalinux(at)gmail(dot)com>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Pasar parametro string a funcion en 7.4.8
Date: 2007-11-08 11:27:59
Message-ID: 95335e4e0711080327pcbcd374x2d5c943875922f72@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

El 8/11/07, Calabaza Calabaza <calalinux(at)gmail(dot)com> escribió:
> > Si estoy en lo cierto, puedes probar
> > a) SQL dinámico (construirte el select a partir de strings incluyendo
> > el parámetro)
>
> Esto no entiendo, como se hace?
> (Acepto como respuestas links o palabras claves para mi amigo google =))

Mira este ejemplo (que evidentemente es mejorable, y usa además la
sintaxis de postgres 8.2) que hace un select incluyendo una condición
que se pasa como parámetro.
Hay documentación oficial sobre los cursores en (por ejemplo)
http://www.postgresql.org/docs/8.2/static/plpgsql-cursors.html

create or replace function b(condicion text) returns record
as $$
DECLARE
c refcursor;
orden text;
registro record;
BEGIN
orden := 'SELECT 1,2,3';
open c for execute orden || ' where '|| condicion;
fetch c into registro;
close c;
return registro;
END;
$$ language plpgsql;

penabad=> select b('1=1');
b
---------
(1,2,3)
(1 row)

penabad=> select b('1=0');
b
------
(,,)
(1 row)

>
> > b) Usar un array en el parámetro.
>
> Esta opcion me gusto!

Me alegro :)
> Bueno, sobre la solución tengo algunas preguntas:
>
> He realizado lo sgte:
>
> Modifique el inicio de la funcion de esta forma:
> CREATE OR REPLACE FUNCTION retenciones_importes(int[]) RETURNS RECORD AS
>
> Luego lo llamo de esta forma:
>
> Select retenciones_importes('{2,3}'::int[]);
>
> Y me devuelve el sgte error:
>
> ERROR: cannot display a value of type record
> Estado SQL:0A000

¿Puedes poner la definición completa de la función?
En principio devolver un record no debería dar ese tipo de error,
según mi experiencia.

Saludos

--
Miguel Rodríguez Penabad

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Alvaro Herrera 2007-11-08 11:39:32 Re: Problemas al traer los datos
Previous Message Calabaza Calabaza 2007-11-08 10:52:39 Re: Pasar parametro string a funcion en 7.4.8