try表的内容如下:cw1,cw2,cw3,cw4,cw5,cs
11  12  13          3
21  22  23  24      4
31                  1
41  42  43  44  45  5
51  52              2其中cs的值与cw的个数相同。我写的存储过程如下:set serveroutput on
declare
cursor mycur is select * from try;
v_try mycur%rowtype;
ii number(3);
kk number(2);
begin
for v_try in mycur loop
  kk:=v_try.cs;
  for j in 1..kk loop   
     ii:=v_try.cw&&j;
     DBMS_OUTPUT.PUT_LINE(to_char(ii));

  end loop;
end loop;
end;通过读取cs的值,实现try表中cw&i值的动态输出。

解决方案 »

  1.   

    SELECT cw1||','||DECODE(cw2,NULL,NULL,cw2||',')
    ||DECODE(cw3,NULL,NULL,cw3||',')
    ||DECODE(cw4,NULL,NULL,cw4||',')
    ||DECODE(cw5,NULL,NULL,cw5) AS result
    FROM try
      

  2.   

    谢谢你的回答,
    我这是一个简单的例子,我的问题比这个复杂的多,我真正想要解决的是红色部分,如何修改?因为我要对每个cw&i的值需进行处理,谢谢!
      

  3.   

    ii:=v_try.cw&&j;  无法实现的!!!只能一个一个的穷举。
      

  4.   

    谢谢oracledbalgtu的回答,我通过穷举方法已经解决问题了!看来这也是存储过程的一个弊端啊!