Lists: | pgsql-es-ayuda |
---|
From: | "Esneiker" <eenriquez(at)cav(dot)desoft(dot)cu> |
---|---|
To: | <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | duda con funciones |
Date: | 2010-08-02 12:21:42 |
Message-ID: | [email protected] |
Views: | Whole Thread | Raw Message | Download mbox | Resend email |
Lists: | pgsql-es-ayuda |
Hola a todos, hace varios días hice una consulta al foro sobre una duda con
las funciones de postgres y no recibí ninguna respuesta, por favor si
alguien sabe como hacer lo que plantea más abajo le agradecería que me
indicara una posible solución porque lo que pregunto es muy fácil de hacer
en otros gestores de base de datos pero hacerlo en postgres me está
resultando muy difícil.
He aquí la duda enviada anteriormente:
El caso es que tengo una función en la cual retorno un cursor con el
resultado de una consulta y desde mi aplicación la llamo usando el fetch
all in, pero necesito que dicha función además de devolver el resultado
de una consulta me devuelva también valores en parámetros de salida,
ejemplo, la función me devuelve en el cursor con datos numéricos pero
necesito sacar totales y porcientos a partir de los datos devueltos y
necesitaría que dichos totales y porcientos fueran devueltos en los
parámetros de salida, esto se puede hacer? habría alguna otra forma de
hacerlo?
Muchas gracias.
--
Saludos,
Ing. Esneiker Enriquez Cabrera.
Excelencia en Software.
Desoft S.A. en Ciego de Ávila.
Joaquín de Agüero Esq. Calle 2. Ciego de Ávila. Cuba.
email:eenriquez(at)cav(dot)desoft(dot)cu
Teléfono: 53-33-266200
__________ Información de ESET NOD32 Antivirus, versión de la base de firmas
de virus 5329 (20100731) __________
ESET NOD32 Antivirus ha comprobado este mensaje.
http://www.eset.com
From: | Gerardo Herzig <gherzig(at)fmed(dot)uba(dot)ar> |
---|---|
To: | Esneiker <eenriquez(at)cav(dot)desoft(dot)cu> |
Cc: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: duda con funciones |
Date: | 2010-08-02 12:48:46 |
Message-ID: | [email protected] |
Views: | Whole Thread | Raw Message | Download mbox | Resend email |
Lists: | pgsql-es-ayuda |
Esneiker wrote:
> Hola a todos, hace varios días hice una consulta al foro sobre una duda con
> las funciones de postgres y no recibí ninguna respuesta, por favor si
> alguien sabe como hacer lo que plantea más abajo le agradecería que me
> indicara una posible solución porque lo que pregunto es muy fácil de hacer
> en otros gestores de base de datos pero hacerlo en postgres me está
> resultando muy difícil.
>
> He aquí la duda enviada anteriormente:
>
> El caso es que tengo una función en la cual retorno un cursor con el
> resultado de una consulta y desde mi aplicación la llamo usando el fetch
> all in, pero necesito que dicha función además de devolver el resultado
> de una consulta me devuelva también valores en parámetros de salida,
> ejemplo, la función me devuelve en el cursor con datos numéricos pero
> necesito sacar totales y porcientos a partir de los datos devueltos y
> necesitaría que dichos totales y porcientos fueran devueltos en los
> parámetros de salida, esto se puede hacer? habría alguna otra forma de
> hacerlo?
>
> Muchas gracias.
>
Creo que no termino bien de entender la pregunta: A que te referis con
parametros de salida? Los datos van a volver en forma de tabla. Si
necesitas mas valores de retorno, van (tal vez) a ser mas parametros OUT
en tu funcion...
Por que no mostras un ejemplo de lo que estas haciendo? Porque asi como
esta, parece que nadie va a poder ayudarte pues la pregunta no esta bien
formulada.
Saludos.
Gerardo
From: | Guillermo Villanueva <guillermovil(at)gmail(dot)com> |
---|---|
To: | Esneiker <eenriquez(at)cav(dot)desoft(dot)cu> |
Cc: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: duda con funciones |
Date: | 2010-08-02 12:57:51 |
Message-ID: | [email protected] |
Views: | Whole Thread | Raw Message | Download mbox | Resend email |
Lists: | pgsql-es-ayuda |
Esneiker, perdón si la respuesta es muy obvia pero... ya viste la
documentación de postgresql en
http://www.postgresql.org/docs/current/static/sql-createfunction.html ahi
especifica que puedes utilizar parámetros de salida.
Saludos
~~~~~~~~~~~~~~~~
Guillermo Villanueva
El 2 de agosto de 2010 09:21, Esneiker <eenriquez(at)cav(dot)desoft(dot)cu> escribió:
> Hola a todos, hace varios días hice una consulta al foro sobre una duda con
> las funciones de postgres y no recibí ninguna respuesta, por favor si
> alguien sabe como hacer lo que plantea más abajo le agradecería que me
> indicara una posible solución porque lo que pregunto es muy fácil de hacer
> en otros gestores de base de datos pero hacerlo en postgres me está
> resultando muy difícil.
>
> He aquí la duda enviada anteriormente:
>
> El caso es que tengo una función en la cual retorno un cursor con el
> resultado de una consulta y desde mi aplicación la llamo usando el fetch
> all in, pero necesito que dicha función además de devolver el resultado
> de una consulta me devuelva también valores en parámetros de salida,
> ejemplo, la función me devuelve en el cursor con datos numéricos pero
> necesito sacar totales y porcientos a partir de los datos devueltos y
> necesitaría que dichos totales y porcientos fueran devueltos en los
> parámetros de salida, esto se puede hacer? habría alguna otra forma de
> hacerlo?
>
> Muchas gracias.
>
> --
> Saludos,
>
> Ing. Esneiker Enriquez Cabrera.
> Excelencia en Software.
> Desoft S.A. en Ciego de Ávila.
> Joaquín de Agüero Esq. Calle 2. Ciego de Ávila. Cuba.
> email:eenriquez(at)cav(dot)desoft(dot)cu <email%3Aeenriquez(at)cav(dot)desoft(dot)cu>
> Teléfono: 53-33-266200
>
>
> __________ Información de ESET NOD32 Antivirus, versión de la base de
> firmas
> de virus 5329 (20100731) __________
>
> ESET NOD32 Antivirus ha comprobado este mensaje.
>
> http://www.eset.com
>
>
> -
> Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda(at)postgresql(dot)org
> )
> Para cambiar tu suscripción:
> http://www.postgresql.org/mailpref/pgsql-es-ayuda
>
From: | Julio Cesar Rodriguez Dominguez <jurasec(at)gmail(dot)com> |
---|---|
To: | Esneiker <eenriquez(at)cav(dot)desoft(dot)cu> |
Cc: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: duda con funciones |
Date: | 2010-08-02 13:47:07 |
Message-ID: | [email protected] |
Views: | Whole Thread | Raw Message | Download mbox | Resend email |
Lists: | pgsql-es-ayuda |
El 2 de agosto de 2010 07:21, Esneiker <eenriquez(at)cav(dot)desoft(dot)cu> escribió:
> Hola a todos, hace varios días hice una consulta al foro sobre una duda con
> las funciones de postgres y no recibí ninguna respuesta, por favor si
> alguien sabe como hacer lo que plantea más abajo le agradecería que me
> indicara una posible solución porque lo que pregunto es muy fácil de hacer
> en otros gestores de base de datos pero hacerlo en postgres me está
> resultando muy difícil.
>
> He aquí la duda enviada anteriormente:
>
> El caso es que tengo una función en la cual retorno un cursor con el
> resultado de una consulta y desde mi aplicación la llamo usando el fetch
> all in, pero necesito que dicha función además de devolver el resultado
> de una consulta me devuelva también valores en parámetros de salida,
> ejemplo, la función me devuelve en el cursor con datos numéricos pero
> necesito sacar totales y porcientos a partir de los datos devueltos y
> necesitaría que dichos totales y porcientos fueran devueltos en los
> parámetros de salida, esto se puede hacer? habría alguna otra forma de
> hacerlo?
>
> Muchas gracias.
Entonces especifica cuales son tus parámetros de salida al crear tu función,
por ejemplo:
CREATE OR REPLACE FUNCTION mi_funcion_in_out(IN id int, OUT campo1 int, OUT
campo2 numeric(15,2)) RETURNS SETOF record AS $BODY$
declare
total int;
porcentaje numeric(15,2);
begin
total = ... ;
porcentaje = ... ;
return query SELECT campo10,campo20 FROM tabla where idtabla = id;
-- return query SELECT total,porcentaje;
return;
end;
$BODY$
LANGUAGE 'plpgsql'
---- select * from mi_funcion( 5432 );
por ahí ya te pasaron el link de la documentación.
http://www.postgresql.org/docs/current/static/sql-createfunction.htm<http://www.postgresql.org/docs/current/static/sql-createfunction.html>
From: | "Esneiker" <eenriquez(at)cav(dot)desoft(dot)cu> |
---|---|
To: | "'Gerardo Herzig'" <gherzig(at)fmed(dot)uba(dot)ar> |
Cc: | <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | RE: duda con funciones |
Date: | 2010-08-02 14:18:39 |
Message-ID: | [email protected] |
Views: | Whole Thread | Raw Message | Download mbox | Resend email |
Lists: | pgsql-es-ayuda |
Continúa el problema porque la columna3 no es la suma de las columnas 1 y 3,
la suma sería la última fila que se muestra, o sea, otra columna en
parámetros de salida. Otra cosa, no puedo devolver un 'setof record' porque
las columnas que devuelve la función son varialbes, pueden ser 1,2,3 o
muchas columnas en dependencia de lo que devuelva la consulta interna, es
por ello que retorno un cursor,
El problema concreto es como retornar un cursor y parámetros de salida en
una función, y de ser posible un ejemplo.
Saludos,
Ing. Esneiker Enriquez Cabrera.
Excelencia en Software.
Desoft S.A. en Ciego de Ávila.
Joaquín de Agüero Esq. Calle 2. Ciego de Ávila. Cuba.
email:eenriquez(at)cav(dot)desoft(dot)cu
Teléfono: 53-33-266200
-----Mensaje original-----
De: Gerardo Herzig [mailto:gherzig(at)fmed(dot)uba(dot)ar]
Enviado el: Monday, August 02, 2010 10:24 AM
Para: Esneiker
Asunto: Re: [pgsql-es-ayuda] duda con funciones
Esneiker wrote:
> No entiendo, la forma en que me deben salir los resultados es:
> columna1 columna2 columna3
> 1 2 3
> 4 5 6
> 7 8 9
> 12 15 18, esta fila es la correspondiente
> a los totales, la duda es cómo sale esta fila? Según usted me dijo es en
> columnas extras pero no lo veo así.
>
> Disculpe la insistencia pero tengo que entender bien para poder
programarlo.
> Muchas gracias por su atención y disculpe el tiempo que le he hecho
perder.
>
> Saludos,
Por lo que puedo ver, esa columna3 (las que hacen el sum() de columna1 y
columna2) tiene que ir en el query que especificas en la variable SQLText.
Sino, tenes que especificar parametros OUT (como alguien de la lista ya
respondio)
y devolver 'setof record' en lugar de retornar un refcursor.
Saludos
Gerardo
__________ Información de ESET NOD32 Antivirus, versión de la base de firmas
de virus 5329 (20100731) __________
ESET NOD32 Antivirus ha comprobado este mensaje.
http://www.eset.com
__________ Información de ESET NOD32 Antivirus, versión de la base de firmas
de virus 5329 (20100731) __________
ESET NOD32 Antivirus ha comprobado este mensaje.
http://www.eset.com
From: | Edwin Quijada <listas_quijada(at)hotmail(dot)com> |
---|---|
To: | <eenriquez(at)cav(dot)desoft(dot)cu>, <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | RE: duda con funciones |
Date: | 2010-08-03 20:02:11 |
Message-ID: | [email protected] |
Views: | Whole Thread | Raw Message | Download mbox | Resend email |
Lists: | pgsql-es-ayuda |
Tu problema creo que es mas de concepto que de Postgres. No entiendo bien, quieres retornar un cursor y ademas varias cosas mas en parametros tipo out?O devuelves el cursor o devuelves los totaleso todo pero como un solo cursor creo que deberias formular mejor la pregunta
*-------------------------------------------------------*
*-Edwin Quijada
*-Developer DataBase
*-JQ Microsistemas
*-Soporte PostgreSQL
*-www.jqmicrosistemas.com
*-809-849-8087
*-------------------------------------------------------*
> From: eenriquez(at)cav(dot)desoft(dot)cu
> To: pgsql-es-ayuda(at)postgresql(dot)org
> Subject: [pgsql-es-ayuda] duda con funciones
> Date: Mon, 2 Aug 2010 08:21:42 -0400
>
> Hola a todos, hace varios días hice una consulta al foro sobre una duda con
> las funciones de postgres y no recibí ninguna respuesta, por favor si
> alguien sabe como hacer lo que plantea más abajo le agradecería que me
> indicara una posible solución porque lo que pregunto es muy fácil de hacer
> en otros gestores de base de datos pero hacerlo en postgres me está
> resultando muy difícil.
>
> He aquí la duda enviada anteriormente:
>
> El caso es que tengo una función en la cual retorno un cursor con el
> resultado de una consulta y desde mi aplicación la llamo usando el fetch
> all in, pero necesito que dicha función además de devolver el resultado
> de una consulta me devuelva también valores en parámetros de salida,
> ejemplo, la función me devuelve en el cursor con datos numéricos pero
> necesito sacar totales y porcientos a partir de los datos devueltos y
> necesitaría que dichos totales y porcientos fueran devueltos en los
> parámetros de salida, esto se puede hacer? habría alguna otra forma de
> hacerlo?
>
> Muchas gracias.
>
> --
> Saludos,
>
> Ing. Esneiker Enriquez Cabrera.
> Excelencia en Software.
> Desoft S.A. en Ciego de Ávila.
> Joaquín de Agüero Esq. Calle 2. Ciego de Ávila. Cuba.
> email:eenriquez(at)cav(dot)desoft(dot)cu
> Teléfono: 53-33-266200
>
>
> __________ Información de ESET NOD32 Antivirus, versión de la base de firmas
> de virus 5329 (20100731) __________
>
> ESET NOD32 Antivirus ha comprobado este mensaje.
>
> http://www.eset.com
>
>
> -
> Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda(at)postgresql(dot)org)
> Para cambiar tu suscripción:
> http://www.postgresql.org/mailpref/pgsql-es-ayuda