Jeden způsob:použijte record
proměnná:
DO $$
DECLARE
_rec record;
BEGIN
SELECT INTO _rec
id, name, surname FROM t WHERE id = ?;
END $$;
Všimněte si, že struktura record
typ není definován, dokud není přiřazen. Předtím tedy nemůžete odkazovat na sloupce (pole).
Další způsob:přiřazení více skalárních proměnných:
DO $$
DECLARE
_id int;
_name text;
_surname text;
BEGIN
SELECT INTO _id, _name, _surname
id, name, surname FROM t WHERE id = ?;
END $$;
Jako pro váš první příklad:%ROWTYPE
je v Postgresu jen hluk. Dokumentace
:
Takže:
DO $$
DECLARE
my_data t; -- table name serves as type name, too.
BEGIN
SELECT INTO my_data * FROM t WHERE id = ?;
END $$;