Re: Problema con Cursor ??

From: "Ivan Alejandro Flores Correa" <ifloresenator(at)gmail(dot)com>
To: "Ivan Alejandro Flores Correa" <ifloresenator(at)gmail(dot)com>, pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Problema con Cursor ??
Date: 2006-12-18 02:46:20
Message-ID: c761b9f00612171846m62f10f29n2eb8ed19a827e72d@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

El día 17/12/06, Alvaro Herrera <alvherre(at)commandprompt(dot)com> escribió:
>
> Ivan Alejandro Flores Correa escribió:
>
> > CREATE OR REPLACE FUNCTION websystem.optionSystemAdmin(
> > i_user_id IN integer,
> > o_cursor_application OUT REFCURSOR,
> > o_codError OUT integer,
> > o_descError OUT varchar)
> > AS $$
> > DECLARE
> > vCodFunc integer := 400;
> > BEGIN
> > o_codError := 0;
> > o_descError := 'OK';
> >
> > -- Verificamos que los Datos no Vengan null
> > IF i_user_id IS NULL THEN
> > o_codError := vCodFunc || 001;
> > o_descError := 'userId is NUll.';
> > RETURN;
> > END IF;
> >
> > -- Seteamos las Applicaciones
> > OPEN o_cursor_application FOR
> > SELECT A.id
> > , A.nombre
> > , A.descripcion
> > FROM websystem.APPLICATION A
> > ORDER BY A.id;
> >
> >
> > RETURN;
> > END;
> > $$ LANGUAGE 'plpgsql' VOLATILE;
>
> Se me olvido comentar que probe tu procedimiento y funciona
> perfectamente, solo que aparentemente no como tu deseas :-) Aca lo hice
> funcionar asi:
>
> alvherre=# begin;
> BEGIN
> alvherre=# select * from websystem.optionSystemAdmin(1);
> o_cursor_application | o_coderror | o_descerror
> ----------------------+------------+-------------
> <unnamed portal 16> | 0 | OK
> (1 fila)
>
> alvherre=# fetch all from "<unnamed portal 16>";
> id | nombre | descripcion
> ----+-------------+----------------------------
> 1 | nombre | descripcion de nombre
> 2 | otro nombre | descripcion otro de nombre
> (2 filas)
>
> alvherre=# commit;
> COMMIT
>
>
> El truco es que hacer select del procedimiento te retorna el nombre del
> cursor del cual debes hacer FETCH.
>
> --
> Alvaro Herrera
> http://www.CommandPrompt.com/
> The PostgreSQL Company - Command Prompt, Inc.
>

Bueno en realidad ese es el problema que en el PL original este
Procedimiento me retorna tres cursores, y me los devuelve con el mensaje
"<unnamed portal NN>", pero lo que busco yo era que me retornnara el cursor
como lo hace el de Oracle, osea lo defino como cursor en el PL y en la
aplicación lo recupero como este y el lo reconoce , pero aca al aparecer
este paramerto no se como decirle en el PL que salga como cursor o Array de
datos.

Gracias si me pueden seguir ayudando

--
Ivan A. Flores C.
Ingeniero en Gestión en Informática
Analista de Sistemas

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Alvaro Herrera 2006-12-18 02:54:44 Re: Problema con Cursor ??
Previous Message Alvaro Herrera 2006-12-18 00:30:00 Re: drop tablespace ? pero por otra razon