C'est parce que unnest &votre unnest_table les deux renvoient SETOF <sometype> , et operators can take at most one set argument , donc par exemple :
SELECT unnest(ARRAY['a', 'b', 'c']);
-- will return
unnest
------
"a"
"b"
"c"
SELECT unnest(ARRAY['a', 'b', 'c']) || 'd';
-- will return
?column?
--------
"ad"
"bd"
"cd"
SELECT unnest(ARRAY['a', 'b', 'c']) || 'd' || unnest(ARRAY['a', 'b', 'c']);
-- will return
ERROR: functions and operators can take at most one set argument
SQL state: 0A000
Modifier :mais je doute fortement que vous souhaitiez créer autant de table avec le même nom - également EXECUTE n'accepte pas plus d'une ligne :
ERROR: query "..." returned more than one row
SQL state: 21000
Je pense que vous devriez utiliser quelque chose comme array_to_string()
fonction.