sql >> Base de Datos >  >> RDS >> PostgreSQL

Error en la declaración dinámica PL/PGSQL (las funciones y los operadores pueden tomar como máximo un argumento establecido)

Eso es porque unnest y tu unnest_table ambos devuelven SETOF <sometype> , y operators can take at most one set argument , por ejemplo:

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

Editar :pero dudo mucho que quieras crear tanta tabla con el mismo nombre - también EXECUTE no acepta más de una fila:

ERROR: query "..." returned more than one row
SQL state: 21000

Creo que deberías usar algo como array_to_string() función.