Mon code est:
SELECT column_name
FROM information.SCHEMA.columns
WHERE table_name = 'aean'
Il renvoie les noms de colonne de la table aean
.
Maintenant, j'ai déclaré un tableau:
DECLARE colnames text[]
Comment puis-je stocker la sortie de select dans un tableau de noms de colonnes.
Faut-il initialiser les noms de colonnes?
Il y a deux façons. L'une consiste à regrouper:
SELECT array_agg(column_name::TEXT)
FROM information.schema.columns
WHERE table_name = 'aean'
L'autre consiste à utiliser un constructeur de tableau:
SELECT ARRAY(
SELECT column_name
FROM information.schema.columns
WHERE table_name = 'aean')
Je suppose que c'est pour plpgsql. Dans ce cas, vous pouvez l'affecter comme ceci:
colnames := ARRAY(
SELECT column_name
FROM information.schema.columns
WHERE table_name='aean'
);
J'ai eu exactement le même problème. Encore une modification de travail de la solution donnée par Denis (le type doit être spécifié):
SELECT ARRAY(
SELECT column_name::text
FROM information_schema.columns
WHERE table_name='aean'
)