Limity typu RECORD
Skočit na navigaci
Skočit na vyhledávání
V PL/pgSQL můžeme používat proměnné typu RECORD
. Díky tomu můžeme zjednodušit kód, jelikož přesně nemusíme specifikovat cílový typ proměnné.
Na druhou stranu typ RECORD
je v Postgresu cizí element - celý typový systém je v rámci provedení jednoho SQL příkazu statický a striktně
typový. Proto je přímý přístup k položkám tohoto typu implementovaný pouze v PL/pgSQL a to pouze pro jednu úroveň (aktuálně SQL nepodporuje dynamický přístup
skrze název položky). Obejít se to dá přes typ jsonb
:
postgres=# do $$ declare r1 record; r2 record; begin select 10 as a, 20 as b into r1; select r1, 30 as c into r2; raise notice '%', (to_jsonb(r2))['r1']['a']; end; $$;