Én måde:brug en record
variabel:
DO $$
DECLARE
_rec record;
BEGIN
SELECT INTO _rec
id, name, surname FROM t WHERE id = ?;
END $$;
Bemærk, at strukturen af en record
typen er udefineret, indtil den tildeles. Så du kan ikke referere til kolonner (felter), før du gør det.
En anden måde:tildel flere skalarvariabler:
DO $$
DECLARE
_id int;
_name text;
_surname text;
BEGIN
SELECT INTO _id, _name, _surname
id, name, surname FROM t WHERE id = ?;
END $$;
Med hensyn til dit første eksempel:%ROWTYPE
er bare støj i Postgres. Dokumentationen
:
Så:
DO $$
DECLARE
my_data t; -- table name serves as type name, too.
BEGIN
SELECT INTO my_data * FROM t WHERE id = ?;
END $$;