Mein Code lautet:
SELECT column_name
FROM information.SCHEMA.columns
WHERE table_name = 'aean'
Es werden Spaltennamen der Tabelle zurückgegeben aean
.
Jetzt habe ich ein Array deklariert:
DECLARE colnames text[]
Wie kann ich die Ausgabe von select im Spaltennamen-Array speichern?
Müssen Spaltennamen initialisiert werden?
sql
arrays
postgresql
plpgsql
Mitesh
quelle
quelle
array_agg(column_name, ',')
Antworten:
Es gibt zwei Möglichkeiten. Eine ist zu aggregieren:
SELECT array_agg(column_name::TEXT) FROM information.schema.columns WHERE table_name = 'aean'
Die andere Möglichkeit besteht darin, einen Array-Konstruktor zu verwenden:
SELECT ARRAY( SELECT column_name FROM information.schema.columns WHERE table_name = 'aean')
Ich gehe davon aus, dass dies für plpgsql ist. In diesem Fall können Sie es folgendermaßen zuweisen:
colnames := ARRAY( SELECT column_name FROM information.schema.columns WHERE table_name='aean' );
quelle
DECLARE
ein Array alsmy_array INTEGER[];
(oder was auch immer der relevante Typ ist) verwenden. Sie können das Array auch in einer AbfrageklauselWHERE
wie verwendenWHERE values = ANY(my_array)
. DerANY
nimmt ein Array oder einen Satz und prüft, ob er in diesem Array / Satz vorhanden ist, sodass erIN ()
inIch hatte genau das gleiche Problem. Nur noch eine funktionierende Modifikation der von Denis angegebenen Lösung (der Typ muss angegeben werden):
SELECT ARRAY( SELECT column_name::text FROM information_schema.columns WHERE table_name='aean' )
quelle