sql >> Database >  >> RDS >> PostgreSQL

toegang tot samengestelde array-elementen plpgsql

De linkeruitdrukkingen moeten vrij eenvoudig in PLpgSQL staan. De combinatie van array en composiettype wordt niet ondersteund. U moet een waarde van het samengestelde type instellen en deze waarde toewijzen aan de 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;

Er is een snelkoppeling mogelijk:

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. Besteltabel op nabijheid van specifieke breedte-/lengtegraad (met behulp van MySQL+PHP)

  2. SQL/Postgres datetime divisie / normaliseren

  3. ORDER BY en GROUP BY samen gebruiken

  4. Kan rijen in sql-instructie niet ophalen