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

悬赏:5 发布时间:2008-07-04 提问人:xey8501 (初级程序员)

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
要怎么做?

采纳的答案

2008-07-04 congjl2002 (资深程序员)

你的这句
a:=new.belong_region;
当然取到的只是最后一个,然后加了一个逗号,这样写试试
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; 

提问者对于答案的评价:
very good