Re: Retornar Cursores en Plpgsql

From: "Estefano Castillo" <ecastillo(at)crecic(dot)cl>
To: Patricio Muñoz <patricio(dot)munoz(at)cmet(dot)net>, Huilder Mera <hmera(at)chiclayo(dot)abaco-corp(dot)edu(dot)pe>
Cc: Lista postgres Esp añol <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Retornar Cursores en Plpgsql
Date: 2004-09-09 22:51:48
Message-ID: 20040909224444.M28053@www.crecic.cl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Prueba con esto

DECLARE
retval RECORD;
BEGIN
FOR retval IN SELECT descripcion from ac_ciclo
LOOP
RETURN NEXT retval;
END LOOP;

END;' language 'plpgsql';

---------- Original Message -----------
From: Patricio Muñoz <patricio(dot)munoz(at)cmet(dot)net>
To: Huilder Mera <hmera(at)chiclayo(dot)abaco-corp(dot)edu(dot)pe>
Cc: Lista postgres Español <pgsql-es-ayuda(at)postgresql(dot)org>
Sent: Thu, 09 Sep 2004 17:46:13 -0400
Subject: Re: [pgsql-es-ayuda] Retornar Cursores en Plpgsql

> > Ok Patricio gracias, tu ejemplo estas ok, ahora yo tengo esta funcion,
haber
> > si me puedes ayudar.
> >
> > reate or replace function ciclo() returns record as '
> > DECLARE
> > retval RECORD;
> > BEGIN
> > SELECT INTO retval descripcion from ac_ciclo;
> > IF FOUND THEN
> > RETURN retval;
> > END IF;
> > END;' language 'plpgsql';
> > --drop function test_ret_rec_dyn()
> >
> > la ejecuto asi:
> > SELECT * FROM ciclo() AS (idusuario varchar);
> >
> > ...y como resultado me da lo sisguiente
> >
> > Descripcion
> > ------------
> > SEGUNDO
> >
> > MI PREGUNTA ES: PORQUE SOLO ME RETORNA UNA SOLA FILA, SI YO EN LA TABLA
> > TENGO 9 FILAS, QUE DEBO HACER O QUE LE FALTA A MI FUNCION PARA QUE ME
> > MUESTRE TODAS LAS FILAS.
> >
> > DISCULPA LA MOLESTIA QUE PUEDA CAUSARLE.
>
> Ejecuta la sentencia desde la consola de Postgres y ve cuantos
> registros retorna. En todo caso si retorna mas de 1 registro,
> entonces debes usar algun ciclo desde tu programa PW para retornar
> todos los datos. Desconozco los metodos que posee PW para accesar a
> bases de datos.
>
> >
> > -----Mensaje original-----
> > De: Patricio Muñoz [mailto:patricio(dot)munoz(at)cmet(dot)net]
>
> >
> > Huilder Mera escribió:
> >
> >
> >>Buenas Patricio, gracias por tu respuesta, me has enviado el link de una
> >>pagina web de lenguage plpgsql, pero te agradeceria, si me enviaras un
> >>ejemplo de una funcion que tu hayas hecho y hayas logrado ejecutarlo
desde
> >>un Lenguague de programacion, para mi caso yo trabajo en PowerBuilder,
ese
> >>especificamente es mi problema, nesecito saber como ejecutar la funcion
> >
> > que
> >
> >>tengo plpgsql desde el PowerBuilder. Ojala Puedas proporcionarme algun
> >>ejemplo.
> >>
> >>
> >>
> >>
> >>-----Mensaje original-----
> >>De: pgsql-es-ayuda-owner(at)postgresql(dot)org
> >>[mailto:pgsql-es-ayuda-owner(at)postgresql(dot)org]En nombre de Patricio Munoz
> >>Enviado el: Jueves, 09 de Septiembre de 2004 01:35 p.m.
> >>Para: Huilder Mera
> >>CC: pgsql-es-ayuda(at)postgresql(dot)org
> >>Asunto: Re: [pgsql-es-ayuda] Retornar Cursores en Plpgsql
> >>
> >>
> >>
> >>
> >>>Buenas amigos de la lista, estoy trabajando con PowerBuilder 8.0, y
> >>
> >>Postgres
> >>
> >>
> >>>7.4.1 y nesecito retornar los resultados de un SELECT a traves de una
> >>>funcion plpgsql, haber si alguien me puede enviar algun ejemplo o una
> >>>direccion web donde pueda encontrar un ejemplo para obtener estos
> >>>resultados.
> >
> >
> > Por ej.
> >
> > Sea una tabla de nombre "table", con 2 campos
> > id -> numerico
> > nombre -> varchar
> >
> > La funcion recibe un argumento de tipo varchar, y retorna un valor de
> > tipo int.
> >
> > CREATE FUNCTION usuario (character varying) RETURNS integer AS '
> > DECLARE
> > name_us ALIAS FOR $1;
> > rec_us RECORD;
> > BEGIN
> > SELECT * INTO rec_us FROM table WHERE nombre = name_us;
> > IF FOUND THEN
> > RETURN rec_us.id;
> > END IF;
> > END;
> >
> > ' LANGUAGE plpgsql;
> >
> > Luego puedes obtener el resultado:
> >
> > SELECT usuario('foo') as valor_retorno;
>
> ---------------------------(end of broadcast)---------------------------
> TIP 9: el optimizador ignorará el uso de recorridos de índice si los
> tipos de datos de las columnas no coinciden
------- End of Original Message -------

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Alvaro Herrera 2004-09-09 23:03:08 Re: Preguntas
Previous Message Ivan Javier Monroy Jinete 2004-09-09 22:51:05 Preguntas