sql >> Database teknologi >  >> RDS >> PostgreSQL

Fejl i dynamisk sætning PL/PGSQL (funktioner og operatorer kan højst tage ét sæt argument)

Det er fordi unnest &din unnest_table begge returnerer SETOF , og operatører kan højst tage ét sæt argument , så f.eks.:

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

Rediger :men jeg tvivler stærkt på, at du vil oprette så meget tabel med samme navn - også EXECUTE accepterer ikke mere end én række:

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

Jeg synes, du skal bruge noget som array_to_string() funktion.




  1. Adgang 2016 For Dummies Cheat Sheet

  2. Er der en måde kun at begrænse det nedre område i mysql?

  3. Slet dublerede rækker fra tabellen

  4. viser data i én række (fra flere rækker)