变量使用实例 create table tblperson(id integer, name text, tdd int); CREATE TABLE teledb insert into tblperson values(1,'teledbpg',1); insert into tblperson values(2,'pgxz',1); INSERT 0 1 teledb insert into tblperson values(2,'pgxz',1); INSERT 0 1 teledb insert into tblperson values(3,'pg',2); INSERT 0 1 teledb create or replace procedure pbulkcollectselectinto(atdd integer) AS $$ declare type TAPersonlist is table of tblperson%rowtype; vpa TAPersonlist; rp tblperson%rowtype; begin select bulk collect into vpa from tblperson where tdd atdd; raise notice 'count%', vpa.count; for i in vpa.first..vpa.last loop rp vpa[i]; raise notice 'loop%', i; raise notice 'vname%', rp.name; end loop; raise notice 'vpa.count%',vpa.count; end; $$language plpgsql; CREATE PROCEDURE teledb CALL pbulkcollectselectinto(1); NOTICE: count2 NOTICE: loop1 NOTICE: vnameteledbpg NOTICE: loop2 NOTICE: vnamepgxz NOTICE: vpa.count2 CALL teledb