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).

War es hilfreich?

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
scroll top