我的代碼是:商店選擇查詢的一個陣列輸出的Postgres
SELECT column_name
FROM information.SCHEMA.columns
WHERE table_name = 'aean'
它返回表aean
的列名。
現在我宣佈一個數組:
DECLARE colnames text[]
我怎麼能存儲選擇在colnames陣列輸出。
是否有任何需要初始化的colnames?
我的代碼是:商店選擇查詢的一個陣列輸出的Postgres
SELECT column_name
FROM information.SCHEMA.columns
WHERE table_name = 'aean'
它返回表aean
的列名。
現在我宣佈一個數組:
DECLARE colnames text[]
我怎麼能存儲選擇在colnames陣列輸出。
是否有任何需要初始化的colnames?
有兩種方法。一個是聚集:
SELECT array_agg(column_name::TEXT)
FROM information.schema.columns
WHERE table_name = 'aean'
另一種是使用數組構造函數:
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'
);
你可以給我的代碼工作在Postgres上,因爲這不工作在Postgres上錯誤:無法找到數據類型的數組類型information_schema.sql_identifier – mitesh
對不起。無意義的複製和粘貼獲得了包含在所有三個調用中的array_agg()。我還爲了讓你的PG版本感到開心而打出了最初的版本。 –
+1謝謝,正在尋找完全相同的東西。 – jerrymouse
我有完全相同的問題。由丹尼斯給出的解決方案只是多一個工作改進(類型必須指定):
SELECT ARRAY(
SELECT column_name::text
FROM information_schema.columns
WHERE table_name='aean'
)
+1,我有完全相同的錯誤MESSAGE-ERROR達到這裏:無法找到數據類型information_schema.sql_identifier數組類型。正在嘗試'array_agg(column_name,',')' – jerrymouse