sql >> Databasteknik >  >> RDS >> PostgreSQL

åtkomst till sammansatta arrayelement plpgsql

De vänstra uttrycken måste vara ganska enkelt i PLpgSQL. Kombinationen av array och sammansatt typ stöds inte. Du bör ställa in ett värde av sammansatt typ, och sedan tilldela detta värde till 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;

Det finns en möjlig genväg:

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. Hur dumpar man mysql-tabellstruktur utan data med en SQL-fråga?

  2. UTF-8 problem med PHP/MySQL

  3. Datavisualisering i Microsoft Power BI

  4. Integrera Sphinx till MySQL