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

Acceder a los valores de un array multidimensional en psql

Estas en el tema de Acceder a los valores de un array multidimensional en psql en el foro de PostgreSQL en Foros del Web. Buenas tardes. Tengo la siguiente funcion que me crea un array multidimensional: Código PHP: CREATE  OR  REPLACE  FUNCTION  traer_valores_sop ( integer ,  integer )  RETURNS text ...
  #1 (permalink)  
Antiguo 10/05/2012, 16:27
 
Fecha de Ingreso: enero-2005
Mensajes: 122
Antigüedad: 19 años, 9 meses
Puntos: 2
Acceder a los valores de un array multidimensional en psql

Buenas tardes.

Tengo la siguiente funcion que me crea un array multidimensional:

Código PHP:
CREATE OR REPLACE FUNCTION traer_valores_sop(integerintegerRETURNS text[][] AS
$BODY$
declare 
nombres text[];
valores text[];
identi integer[];
posiciones text[][];
retorno record;
i integer;
j integer;

begin

select array_agg
(valor), array_agg(nombre), array_agg(identinto valoresnombresidenti from (SELECT (select variables_servicios_id from variables_servicios where variables_servicios_id vvs.variables_servicios_id) as identvalor, (select nombre_dato from variables_servicios where variables_servicios_id vvs.variables_servicios_id) as nombre from valores_variables_servicios vvs where sop_integral_id = $AND tipo_operacion_logistica_id = $2) as f;

i:=0;

for 
j IN 1..array_upper(nombres1loop
 
    i
:=i+1;
    
posiciones[identi[i]] := array[nombres[i],valores[i]];
  
end loop;

return 
posiciones;

end;
$BODY$
  
LANGUAGE plpgsql VOLATILE;
$$
LANGUAGE plpgsql
Funciona perfecto.
Le doy
Código PHP:
SELECT from traer_valores_sop(180000001180000004
y me sale esto:
Código PHP:
[180000075:180000145]={"{tipo_carga_dangerous_good,t}","{tipo_carga_imo,t}",NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,"{mode_transport_air,t}","{mode_transport_pieces,34}","{mode_transport_weight,4}","{mode_transport_dims,5}","{mode_transport_vol,3}","{mode_transport_oversize,2}",NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,"{otm,f}","{dta,f}","{inland,f}","{insurance,f}",NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,"{insurance_percent,40}"
Fíjense en las comillas que pone, yo no las he puesto y se me hace que por eso no me sale.

Cuando intento sacar un dato asi:

Código PHP:
SELECT g[180000090][1from traer_valores_sop(180000001180000004) as g
me sale vacio y se supone que me debería traer el dato que está en esa dimensión y en la posición 1.

Que será lo que estoy haciendo mal?

Gracias

Etiquetas: multidimensional, psql, select, sql
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 16:08.