私のコードは:
SELECT column_name
FROM information.SCHEMA.columns
WHERE table_name = 'aean'
テーブルaean
の列名を返します。
配列を宣言しました:
DECLARE colnames text[]
Selectの出力をcolnames配列に格納するにはどうすればよいですか。
colnameを初期化する必要はありますか?
2つの方法があります。 1つは集約することです。
SELECT array_agg(column_name::TEXT)
FROM information.schema.columns
WHERE table_name = 'aean'
もう1つは、配列コンストラクターを使用することです。
SELECT ARRAY(
SELECT column_name
FROM information.schema.columns
WHERE table_name = 'aean')
これはplpgsql用だと思います。その場合、次のように割り当てることができます。
colnames := ARRAY(
SELECT column_name
FROM information.schema.columns
WHERE table_name='aean'
);
私はまったく同じ問題を抱えていました。 Denisによって与えられたソリューションのもう1つの実用的な修正(タイプを指定する必要があります):
SELECT ARRAY(
SELECT column_name::text
FROM information_schema.columns
WHERE table_name='aean'
)