mehrdimensionale VARCHAR / Text-Arrays in plpgsql Erzeugen (postgres)
-
26-09-2019 - |
Frage
Ich habe einige Funktionen Ich mag würde von dem serverseitigen Code in die Datenbank erhalten.
ich kann nicht herausfinden, wie in plpgsql die Werte eines Multi-demensional varchar Array setzen.
Hier ist ein Beispiel dafür, was ich zu tun werde versuchen:
`CREATE OR REPLACE FUNCTION my_function (my_arg integer) RETURNS text[][] AS
$$
DECLARE
my_arr varchar[][];
r_row RECORD;
counter integer:= 1;
BEGIN
FOR r_row IN SELECT my_stuff1, my_stuff2 FROM my_table WHERE my_val = my_arg LOOP
my_arr[counter][1] := r_row.my_stuff1;
my_arr[counter][2] := r_row.my_stuff2;
my_arr[counter][3] := 'my_string';
END LOOP;
return my_arr;
END;
$$
LANGUAGE plpgsql;`
für das Leben von mir, ich kann nicht herausfinden, wie diese zur Arbeit kommen.
jede mögliche Hilfe würde groß sein. Ich bin Postgres 8.1 durch die Art und Weise unter Verwendung von (zu dieser Version stecken).
Lösung
wie das Versuchen, habe ich es ohne Probleme getestet.
CREATE OR REPLACE FUNCTION my_function (my_arg integer) RETURNS text[][] AS
$$
DECLARE
my_arr varchar[][];
r_row RECORD;
counter integer:= 1;
BEGIN
FOR r_row IN SELECT my_stuff1, my_stuff2 FROM my_table WHERE my_val = my_arg LOOP
my_arr[counter] := array[r_row.my_stuff1,r_row.my_stuff2,'my_string'];
counter :=counter+1;
END LOOP;
return my_arr;
END;
$$
LANGUAGE plpgsql;
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow