PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Fehler in dynamischer Anweisung PL/PGSQL (Funktionen und Operatoren können höchstens ein Set-Argument annehmen)

Das liegt daran, dass unnest &Ihre unnest_table beide geben SETOF zurück , und Operatoren können höchstens ein Set-Argument annehmen , also zB:

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

Bearbeiten :aber ich bezweifle sehr, dass Sie so viele Tabellen mit demselben Namen erstellen möchten - auch EXECUTE akzeptiert nicht mehr als eine Zeile:

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

Ich denke, Sie sollten so etwas wie den array_to_string() Funktion.