Re: Retornar Cursores en Plpgsql

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>
Subject: Re: Retornar Cursores en Plpgsql
Date: 2004-09-09 21:46:13
Message-ID: 4140CF25.1020909@cmet.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

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

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Ivan Javier Monroy Jinete 2004-09-09 22:51:05 Preguntas
Previous Message cbeltran 2004-09-09 20:26:28 Re: Replicacion?