Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » PostgreSQL »

problema con funcion y arrays

Estas en el tema de problema con funcion y arrays en el foro de PostgreSQL en Foros del Web. Un saludo a todos, tengo un pequeño problema, cree un tipo de dato asi Código: create type tforma1918 as (tipo_empleado text, cantfem integer, cantman integer, ...
  #1 (permalink)  
Antiguo 30/09/2011, 10:36
Avatar de ichigohollow  
Fecha de Ingreso: octubre-2009
Mensajes: 38
Antigüedad: 14 años, 6 meses
Puntos: 1
problema con funcion y arrays

Un saludo a todos, tengo un pequeño problema, cree un tipo de dato asi

Código:
create type tforma1918 as (tipo_empleado text, cantfem integer, cantman integer, cantvac integer, total integer, salarios numeric)
y dentro de una funcion que retorna un set of tforma1918

quiero declarar un array y lo hago asi

vretorno tforma1918[];

pero dentro de la funcion yo requiero de ir armando poco a poco los campos del tipo de dato que cree, pero cuando lo hacia sin que fuese arreglo me funcionaba (asi: vretorno.cantfem:= x;) cuando lo cambie a array quiero intentar hacer lo mismo pero como array pero me da error
lo intento asi:
vretorno[1].cantfem:=x;
o
vretorno.cantfem[1]:=x;
y siempre me da error de sintaxis...

ahora no se si es que no se puede hacer lo que yo estoy tratando de hacer, crear un arreglo de ese tipo de dato personalizado...

gracias de antemano por cualquier ayuda que me brinden
  #2 (permalink)  
Antiguo 03/10/2011, 05:59
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: problema con funcion y arrays

Hola Ichigohollow
prueba llenando el objeto de un solo tiro.

vretorno[1] = (valor1,valor2,valor3)::tforma1918;

me cuentas como te va.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #3 (permalink)  
Antiguo 03/10/2011, 08:38
Avatar de ichigohollow  
Fecha de Ingreso: octubre-2009
Mensajes: 38
Antigüedad: 14 años, 6 meses
Puntos: 1
Respuesta: problema con funcion y arrays

gracias huesos, te cuento...

en la asignación gracias a tu consejo ya no me esta dando error pero si en el return

tengo estas lineas

tengo en la declaración de la funcion esta linea
create or replace function forma1918 () returns setof tforma1918 as

en el declare
vretorno tforma1918[];

y para retornar por ejemplo

return next vretorno[1];

y me da el siguiente error
RETURN NEXT must specify a record or row variable in function returning tuple at or near "vretorno"

en que estare fallando ahora..?

Edit: ojo esto es unicamente ya para conocimiento pq en este punto lo que puedo hacer es que justo anets de hacer el return next en el ciclo le asigno el valor del arreglo (por posicion) a una variable del tipo tforma y retorna esta ultima... pero como dije ya es solo para crecimiento personal el saber si no se puede hacer o si esta algo mal en la forma en que yo lo este haciendo

Última edición por ichigohollow; 03/10/2011 a las 09:10
  #4 (permalink)  
Antiguo 03/10/2011, 19:13
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: problema con funcion y arrays

La verdad es mas facil de lo que crees.
Nisiquiera necesitas de SETOF al retorno ni de la clausula RETURN NEXT. Lo puedes recorrer y llenar haciendo uso de un ciclo y cuando esté lleno, simplemente lo retornas.

vretorno[1] = (valor1,valor2,valor3)::tforma1918;
vretorno[2] = (valor1,valor2,valor3)::tforma1918;
vretorno[3] = (valor1,valor2,valor3)::tforma1918;
vretorno[4] = (valor1,valor2,valor3)::tforma1918;
RETURN vretorno;
__________________
Without data, You are another person with an opinion.
W. Edwads Deming

Etiquetas: arrays
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:34.