From: | "Ivan Perales M(dot)" <ivan(dot)perales(at)gmail(dot)com> |
---|---|
To: | Ayuda Esp PostgreSQL <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Array de Objects en una funcion |
Date: | 2014-09-12 00:50:12 |
Message-ID: | CAHMuS052DJNrPW=-M-O6Bh2GqFWAmjn4ZiJJTv4ySEwfQyPWAA@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Hola buenas noches.
Estoy batallando con un escenario. Estoy migrando una base de datos de H2
database a postgresql ya que en algunas ocasiones falla por razones que no
he podido debugear y como el tiempo es oro decidi a cambiar de base.
Todo muy bien excepto por una funcion que escribi, la cual hace lo
siguiente:
Tengo una tabla con facturas, y cada factura tiene diferentes impuestos.
Así una factura puede no tener impuestos, otras pueden tener 1 o 2 o 3 o N
impuestos.
Entonces tengo una tabla con impuestos y tengo otra tabla intermedia donde
relaciono la factura con sus impuestos. Como las facturas las muestro en un
paginador, hago un query como:
select *, myfuncion('select impuesto, valor from tabla_intermedia where
fac_id =' || id) from factura...
myfuncion se encarga de ejecuta el query que indico, el cual como ven
retorna dos valores por cada impuesto, la clave del impuesto y el valor del
mismo. La funcion creada en h2 database se encarga de crear un array y
retornarlo. Por ejemplo si una factura tiene 2 impuestos: el valor
resultante seria: {'impuesto1', 1243.23, 'Impuesto2', 543.43}. Este
resultado lo proceso y lo muestra en una tabla.
Estoy tratando de crear esta misma funcionalidad en plpgsql, del cual soy
completamente nuevo. Estube leyendo algo pero me surgio la siguiente duda:
al crear la funcion necesito declarar el tipo de dato a regresar, pero
seria un tipo de dato object por que van valores alfabeticos y numericos, y
no encontre como poder usar este tipo de dato. Alguien de ustedes sabe como
declarar el valor de retorno en la funcion? y aventurarme un poco mas,
retornar un array bidimensional algo como:
{{'Impuesto1', 1243.23}
{'Impuesto2', 543.43}}
No importa mucho la manera en que se retorne, puedo actualizar la
aplicacion, lo importante es que obtenga la información.
Saludos y gracias por su tiempo
--
Lindolfo Iván Perales Mancinas
Solo existen 10 tipos de personas en el mundo, las que saben binario y las
que no.
From | Date | Subject | |
---|---|---|---|
Next Message | anthony | 2014-09-12 18:56:10 | Re: Array de Objects en una funcion |
Previous Message | Martín Marqués | 2014-09-08 19:00:31 | PgDay Argentina 2014 |