oracle 存储过程一个问题!

lilywild 2008-08-28 09:12:42
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值的动态输出。




...全文
70 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
oracledbalgtu 2008-08-28
  • 打赏
  • 举报
回复
ii:=v_try.cw&&j; 无法实现的!!!

只能一个一个的穷举。

[Quote=引用楼主 lilywild 的帖子:]
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;…
[/Quote]
lilywild 2008-08-28
  • 打赏
  • 举报
回复
谢谢你的回答,
我这是一个简单的例子,我的问题比这个复杂的多,我真正想要解决的是红色部分,如何修改?因为我要对每个cw&i的值需进行处理,谢谢!
bugchen888 2008-08-28
  • 打赏
  • 举报
回复
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
lilywild 2008-08-28
  • 打赏
  • 举报
回复
谢谢oracledbalgtu的回答,我通过穷举方法已经解决问题了!看来这也是存储过程的一个弊端啊!

17,090

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧