PostgreSQL - Saber nombre y tipo de campos de un record

 
Vista:

Saber nombre y tipo de campos de un record

Publicado por saul perez (1 intervención) el 24/04/2021 18:45:46
Buenos días, espero me pueda ayudar.
Dada esta función :
============================================
1
2
3
4
5
6
7
8
9
10
11
12
13
14
CREATE OR REPLACE FUNCTION buscar(
    pc_table character varying)
  RETURNS SETOF record AS
$BODY$
DECLARE
 l_rec RECORD;
BEGIN
	FOR l_rec  IN execute ' select * from '|| pc_table
	LOOP
		RETURN NEXT r;
	END LOOP;
	RETURN;
END;
$BODY$  LANGUAGE plpgsql VOLATILE  COST 100
===========================================

requiero saber el objeto "l_rec" de tipo record que campos y de que tipo son, (varchar, numeric, int, etc)
Alguien sabe como lo podría conocer?

De antemano muchas gracias por su ayuda.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Francisco
Val: 256
Oro
Ha mantenido su posición en PostgreSQL (en relación al último mes)
Gráfica de PostgreSQL

Saber nombre y tipo de campos de un record

Publicado por Francisco (110 intervenciones) el 28/05/2021 21:44:25
Holal

por el RECORD no se puede hasta donde se

Sin embargo puedes probar lo siguiente

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
DO
$$
DECLARE
 l_rec record;
 pc_table varchar;
BEGIN
 
  pc_table := 'tabla';
 
  FOR l_rec IN
    SELECT ordinal_position, column_name, data_type
    FROM information_schema.columns
    WHERE table_name = pc_table
  LOOP
    RAISE INFO '%',  l_rec;
  END LOOP;
 
END;
$$
LANGUAGE plpgsql;

Te devuleve la posicion, nombre y tipo de datos de cada columna definida para la tabla, no funciona cuando hay relaciones complejas a menos que esa relacion la transforme en una vista que pudiera ser que funcione

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar