PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Erreur dans l'instruction dynamique PL/PGSQL (les fonctions et les opérateurs peuvent prendre au plus un argument défini)

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.