sql >> Database teknologi >  >> RDS >> PostgreSQL

få adgang til sammensatte array-elementer plpgsql

De venstre udtryk skal være ret simpelt i PLpgSQL. Kombinationen af ​​array og sammensat type understøttes ikke. Du bør indstille en værdi af sammensat type, og derefter tildele denne værdi til array.

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;

Der er mulig en genvej:

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$;


  1. ColdFusion 10/Windowns 7 Pro 64bit forbindelsesbekræftelse mislykkedes for datakilde

  2. Spørg forældre og børn i selvhenvisningstabel

  3. ORA-00955-navnet bruges allerede af et eksisterende objekt

  4. Sammenkæd/flet matrixværdier under gruppering/aggregering