sql >> Base de Datos >  >> RDS >> PostgreSQL

acceder a los elementos de matriz compuesta plpgsql

Las expresiones de la izquierda deben ser bastante simples en PLpgSQL. No se admite la combinación de matriz y tipo compuesto. Debe establecer un valor de tipo compuesto y luego asignar este valor a la matriz.

CREATE OR REPLACE FUNCTION playx(OUT mod playz[]) AS $$
DECLARE r playz;
BEGIN
  FOR i in 1..5 LOOP
    r.a = 1;
    r.b = 12.2;
    r.c = 1;
    r.d = 0.02;
    mod[i] = r;
  END LOOP;
END;
$$ LANGUAGE plpgsql;

Es posible un atajo:

CREATE OR REPLACE FUNCTION public.playx(OUT mod playz[])
LANGUAGE plpgsql
AS $function$
BEGIN
  FOR i in 1..5 LOOP
    mod[i] = ROW(1, 12.2, 1, 0.02);
  END LOOP;
END;
$function$;