Limity typu RECORD
Verze z 16. 11. 2021, 11:30, kterou vytvořil PavelStehule (diskuse | příspěvky) (založena nová stránka s textem „V PL/pgSQL můžeme používat proměnné typu <code>RECORD</code>. Díky tomu můžeme zjednodušit kód, jelikož přesně nemusíme specifikovat cílov…“)
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; $$;