存储过程问题!

sxq129601 2009-11-27 10:02:32
部分代码
cursor b1 is
select * from ec_acc_fee e where e.line_code = lineCode;
b b1%rowtype;

cursor b2 is
select * from ec_acc_fee e where e.user_code = userCode;
begin
open d1;
open d2;
LOOP
if userCode is null then
FETCH d1
INTO d;
Exit When d1%Notfound;
elsif lineCode is null then
FETCH d2
into d;
dbms_output.put_line('DDDD');--这里能打印
Exit When d2%Notfound;
end if;
dbms_output.put_line('EEEE');为什么这里却不能打印
end loop;
end;
...全文
106 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
sxq129601 2009-11-27
  • 打赏
  • 举报
回复
散分了。是没数据
iqlife 2009-11-27
  • 打赏
  • 举报
回复
调试还不能解决问题?
是业务逻辑问题还是代码问题?
sxq129601 2009-11-27
  • 打赏
  • 举报
回复
没解决。。
ojuju10 2009-11-27
  • 打赏
  • 举报
回复

--类似的存储过程
create or replace procedure aa
is
vtime varchar2(100);
cursor cur is select 1 from dual;
begin
open cur;
loop
if 1=1 then
fetch cur into vtime;
dbms_output.put_line('aa');
exit when cur%NOTFOUND;
end if;
dbms_output.put_line('bb');
end loop;

end;
sxq129601 2009-11-27
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 hailang1118 的回复:]
1。看看你的DMBS处理的Buffer的大小够不够
2。d2这个查询有数据么?[Exit When d2%Notfound; ]这个跳出循环了。都EndLoop了当然打不出来东西了

[/Quote]我知道啊,但我打印的是在END LOOP 之前啊
ojuju10 2009-11-27
  • 打赏
  • 举报
回复
Exit When d2%Notfound;

已经退出了循环,肯定不能打印
duanzhi1984 2009-11-27
  • 打赏
  • 举报
回复
学习。我也刚接触ORACLE
sxq129601 2009-11-27
  • 打赏
  • 举报
回复
要改的话都要改,我测试了一下,打开D2是没问题的,然后继续走,就不打印了。跳出去了
iqlife 2009-11-27
  • 打赏
  • 举报
回复
调试下存储过程,
hailang1118 2009-11-27
  • 打赏
  • 举报
回复
1。看看你的DMBS处理的Buffer的大小够不够
2。d2这个查询有数据么?[Exit When d2%Notfound; ]这个跳出循环了。都EndLoop了当然打不出来东西了
小灰狼W 2009-11-27
  • 打赏
  • 举报
回复
loop嵌套关系没有弄好
写成for cur in(select ...)loop
形式吧,比较清晰一些

3,496

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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