PostgreSQL - función que retorna una tabla en lenguaje plpgsql

 
Vista:
Imágen de perfil de TheTrainee
Val: 2
Ha disminuido su posición en 12 puestos en PostgreSQL (en relación al último mes)
Gráfica de PostgreSQL

función que retorna una tabla en lenguaje plpgsql

Publicado por TheTrainee (2 intervenciones) el 23/02/2019 03:50:18
estoy creando na función que devuelve una tabla con los nombres de unos exámenes en una columna. Esta es mi función:

1
2
3
4
5
6
7
8
9
10
11
12
13
CREATE OR REPLACE FUNCTION "public"."fn_tabla_examenes"()
  RETURNS TABLE("nombres" varchar) AS $BODY$
    DECLARE
    nombre1 varchar;
    tabla_nombres record;
    BEGIN
        for tabla_nombres in (select nombre from laboratorio_por_secciones)
 LOOP
     nombre1:=tabla_nombres.nombre;
     RETURN NEXT;
 END LOOP;
END$BODY$
  LANGUAGE plpgsql

resulta que al llamar la función solo obtengo valores nulos, agradecería mucho si me pudieran ayudar
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 Pancho
Val: 256
Oro
Ha mantenido su posición en PostgreSQL (en relación al último mes)
Gráfica de PostgreSQL

función que retorna una tabla en lenguaje plpgsql

Publicado por Pancho (110 intervenciones) el 14/03/2019 22:24:46
Hola

Hay dos soluciones a tu problema

Solucion A

1
2
3
4
5
6
7
8
9
10
CREATE OR REPLACE FUNCTION fn_tabla_examenes1()
	RETURNS TABLE(nombre varchar)
AS $$
BEGIN
	RETURN QUERY
		SELECT unnest('{Alfa, Beta, Gamma}'::varchar[]) nombre;
END $$
LANGUAGE plpgsql;
 
SELECT fn_tabla_examenes1();

Solucion B

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
CREATE OR REPLACE FUNCTION fn_tabla_examenes2()
  RETURNS TABLE(nombre varchar)
AS $$
DECLARE
	rec record;
BEGIN
	FOR rec IN (
		SELECT unnest('{Alfa, Beta, Gamma}'::varchar[]) nombre
	)
	LOOP
		nombre := rec.nombre;
		RETURN NEXT;
	END LOOP;
END $$
LANGUAGE plpgsql;
 
SELECT fn_tabla_examenes2();

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

función que retorna una tabla en lenguaje plpgsql

Publicado por Carlos (1 intervención) el 12/09/2019 20:13:09
Myuchas gracias, probe muchas alternativas que encontré en otros foros y no obtuve ningún resultado. Esta fué la solución al problema que también tenía. Gracias nuevamente.
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