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

Record + json + nombres de columnas almacenados

Estas en el tema de Record + json + nombres de columnas almacenados en el foro de PostgreSQL en Foros del Web. Hola a todos, La consulta es como consultar por el valor RECORD.atributo , pero donde el atributo no lo escribo directamente, sino que lo leo ...
  #1 (permalink)  
Antiguo 17/07/2014, 21:00
 
Fecha de Ingreso: julio-2014
Mensajes: 2
Antigüedad: 6 años, 3 meses
Puntos: 0
Record + json + nombres de columnas almacenados

Hola a todos,

La consulta es como consultar por el valor RECORD.atributo , pero donde el atributo no lo escribo directamente, sino que lo leo como string.

Quizas la pregunta no es clara, asi que lo explico con codigo.

Lo importante de la consulta lo marco en rojo.

Código:
FOR r_images IN

	SELECT i.*
	FROM idarouter.image i 
	JOIN idarouter.imagequeue iq 
		ON i.idimage_pk = iq.idimage_fk 
LOOP


FOR result IN

	select 
	json_array_elements
	(
		(
		SELECT  rr.jsonrule::json->'wherefields' FROM idarouter.routerules rr where rr.idrouterule_pk = idrouterule_
		)
	) as jsondata
 LOOP
	
	SELECT  result.jsondata->>'column', 
		result.jsondata->>'operator', 
		result.jsondata->>'suboperator', 
		result.jsondata->>'usecasesensitive', 
		result.jsondata->>'value' 
	INTO
		column_, 
		operator_, 
		suboperator_, 
		usecasesensitive_, 
		value_;



RAISE NOTICE 'SHOW THIS :[%]' ,'r_images.'||quote_ident(column_);


-- Lo que busco hacer es esto :
-- IF (r_images.mensaje  = 'HOLA' )
--Como pueden ver, la columna mensaje en realidad es "column_"
--O sea, que dentro de la variable column_ esta el nombre de la columna "mensaje"
--y en otra vuelta será otra columna.

  IF (r_images.column_  = 'HOLA')

      hacer algo;

  END IF;

-- Es claro que no puedo usar directamente r_images.column_.
-- Tambien se , que para ejecutar sentencias a partir  de un string
-- podria usar quote_ident(column_) con EXECUTE, pero eso es
-- en una sentencia, y aca en este caso, estoy tratando de aplicar sobre
-- RECORD.Atributo.

  END LOOP;

END LOOP;
Espero haberme explicado, porque la verdad no se como resolverlo y ya he leido varias lineas de manuales y foros.

Alguna sugerencia ?

Desde ya muchas gracias,
  #2 (permalink)  
Antiguo 20/07/2014, 12:23
 
Fecha de Ingreso: julio-2014
Mensajes: 2
Antigüedad: 6 años, 3 meses
Puntos: 0
Respuesta: Record + json + nombres de columnas almacenados

Quizas no fue clara la pregunta ?

Etiquetas: columnas, json, nombres, record, valor
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 02:18.