关于存储过程得到字符串的问题?

mis_data.dept_status的表数据
id
1
2
3
4
创建如下存储过程:
create or replace procedure test
as
a varchar(20);
begin
for new in(select * from mis_data.dept_status)
loop
a:=new.belong_region;
a:=a||',';
end loop;

dbms_output.put_line(a);

end;
这样的话结果是4,

那我要的结果是1,2,3,4
要怎么做?

你的这句
a:=new.belong_region;
当然取到的只是最后一个,然后加了一个逗号,这样写试试
[code="Sql"]create or replace procedure test
as
a varchar(20);
b varchar(20);
begin
for new in(select * from mis_data.dept_status)
loop
a:=a||new.belong_region',';
end loop;
dbms_output.put_line(a);
end; [/code]