Mein Code ist:
SELECT column_name
FROM information.SCHEMA.columns
WHERE table_name = 'aean'
Es werden die Spaltennamen der Tabelle aean
zurückgegeben.
Nun habe ich ein Array deklariert:
DECLARE colnames text[]
Wie kann ich die Ausgabe von select im Feld colnames speichern?.
Müssen Spaltennamen initialisiert werden?
Es gibt zwei Möglichkeiten. Eine ist zu aggregieren:
SELECT array_agg(column_name::TEXT)
FROM information.schema.columns
WHERE table_name = 'aean'
Das andere ist die Verwendung eines Array-Konstruktors:
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'
);
Ich hatte genau das gleiche Problem. Nur noch eine funktionierende Modifikation der von Denis gegebenen Lösung (der Typ muss angegeben werden):
SELECT ARRAY(
SELECT column_name::text
FROM information_schema.columns
WHERE table_name='aean'
)