sql >> Databáze >  >> RDS >> PostgreSQL

Chyba v dynamickém příkazu PL/PGSQL (funkce a operátory mohou mít maximálně jeden argument)

Je to proto, že unnest a vaše unnest_table oba vrátí SETOF <sometype> a operators can take at most one set argument , takže např.:

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

Upravit :ale silně pochybuji, že chcete vytvořit tolik tabulky se stejným názvem - také EXECUTE nepřijímá více než jeden řádek:

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

Myslím, že byste měli použít něco jako array_to_string() funkce.




  1. balíček selhává – nelze najít klientskou knihovnu PostgreSQL (libpq)

  2. Nejrychlejší způsob, jak najít vzdálenost mezi dvěma zeměpisnými/délkovými body

  3. HQL generuje neúplné „křížové spojení“ při spuštění aktualizace

  4. Součet násobení sloupců pro řádky s podobnými ID v MySQL