套两次for循环后,第二层for循环的j值不能循环赋值是怎么回事啊?

jiangweihouse 2013-04-10 09:31:20
declare

v_sql varchar2(500);
begin

for i in 1 .. 5 loop
v_sql := 'update zhangrmTbs set updatecount =(select nvl(count(*),0) from HK_Trd_center where uppdate=to_date(''2013-3-13'',''yyyy-mm-dd'') minus
select nvl(count(*),0) from HK_Trd_center where uppdate=to_date(''2013-3-13'',''yyyy-mm-dd'')+1 ) where updatecount is null and id=' || i;
v_sql := replace(v_sql, '+1', '+' || i || '');
for j in 1 .. 3 loop
v_sql := replace(v_sql, '+1', '+' || j || '');
dbms_output.put_line('j='||j);
dbms_output.put_line(v_sql);

end loop;
dbms_output.put_line('-------------------------------------ok');

end loop;

end;
...全文
242 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
善若止水 2013-04-10
  • 打赏
  • 举报
回复
双层的循环是有里及外的,这也就是说,必须等里面的循环执行结束后,再进行外面的结果
declare
begin
for i in 1 .. 5 loop
 dbms_output.put_line(i||'行执行开始');
   for j in 1 .. 3  loop
 dbms_output.put_line('i='||i||','||'j='||j);
END loop;
dbms_output.put_line(i||'行执行结束');
end loop; 
end;
下面的是执行结果
1行执行开始
i=1,j=1
i=1,j=2
i=1,j=3
1行执行结束
2行执行开始
i=2,j=1
i=2,j=2
i=2,j=3
2行执行结束
3行执行开始
i=3,j=1
i=3,j=2
i=3,j=3
3行执行结束
4行执行开始
i=4,j=1
i=4,j=2
i=4,j=3
4行执行结束
5行执行开始
i=5,j=1
i=5,j=2
i=5,j=3
5行执行结束
希望对楼主有用
li_shiye 2013-04-10
  • 打赏
  • 举报
回复
--是能够赋值的 declare v_sql varchar2(500); begin for i in 1 .. 5 loop v_sql := '+1'||' id=' || i; v_sql := replace(v_sql, '+1', '+' || i || ''); for j in 1 .. 3 loop v_sql := replace(v_sql, '+1', '+' || j || ''); dbms_output.put_line('j='||j); dbms_output.put_line('i='||i||'时的第' ||j ||'次输出'); end loop; dbms_output.put_line('-------------------------------------ok'); end loop; end; --结果 j=1 i=1时的第1次输出 j=2 i=1时的第2次输出 j=3 i=1时的第3次输出 -------------------------------------ok j=1 i=2时的第1次输出 j=2 i=2时的第2次输出 j=3 i=2时的第3次输出 -------------------------------------ok j=1 i=3时的第1次输出 j=2 i=3时的第2次输出 j=3 i=3时的第3次输出 -------------------------------------ok j=1 i=4时的第1次输出 j=2 i=4时的第2次输出 j=3 i=4时的第3次输出 -------------------------------------ok j=1 i=5时的第1次输出 j=2 i=5时的第2次输出 j=3 i=5时的第3次输出 -------------------------------------ok

17,086

社区成员

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

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