假设我有一个带有UUID类型列的表,我想把所有的uuid取到一个数组中,这个数组将在一个循环中使用。
我有一个PLSQL块,如下所示(为了简单起见,我只打印数组值):
DO $$
DECLARE
my_arr UUID ARRAY;
i UUID;
BEGIN
--my_arr := '{{40ffb910-aaaa-eeee-dddd-4d53dd14aaaa}, {40ffb910-aaaa-eeee-dddd-4d53dd14bbbb}}';
my_arr := (SELECT * FROM dblink ('my_conn', 'SELECT uuid_column FROM my_table') AS my_arr(name UUID ARRAY));
FOREACH i IN ARRAY my_arr
LOOP
RAISE NOTICE '%', i;
END LOOP;
END $$;
字符串
这会产生一个错误:
[22P02] ERROR: malformed array literal: "40ffb910-aaaa-eeee-dddd-4d53dd14aaaa"
Details: Array value must start with "{" or dimension information.
型
是否可以将dblink SELECT结果存储到数组中?Postgresql docs没有显示任何相关示例。
1条答案
按热度按时间aiazj4mn1#
使用array_agg()创建数组:
字符串