Một cách:sử dụng bản ghi record
biến:
DO $$
DECLARE
_rec record;
BEGIN
SELECT INTO _rec
id, name, surname FROM t WHERE id = ?;
END $$;
Lưu ý rằng cấu trúc của record
loại không được xác định cho đến khi được chỉ định. Vì vậy, bạn không thể tham chiếu các cột (trường) trước khi làm điều đó.
Một cách khác:gán nhiều biến vô hướng:
DO $$
DECLARE
_id int;
_name text;
_surname text;
BEGIN
SELECT INTO _id, _name, _surname
id, name, surname FROM t WHERE id = ?;
END $$;
Đối với ví dụ đầu tiên của bạn:%ROWTYPE
chỉ là tiếng ồn ở Postgres. Tài liệu
:
Vì vậy:
DO $$
DECLARE
my_data t; -- table name serves as type name, too.
BEGIN
SELECT INTO my_data * FROM t WHERE id = ?;
END $$;