oracle 中循环总结

--while循环控制语句
-----------------------------------------------------------
declare
i int := 1;
begin
while i <= 10 loop
dbms_output.put_line('当前循环体内i的值:' || i);
i := i + 1;
end loop;
end;
-----------------------------------------------------------
--for循环控制语句 递增
-----------------------------------------------------------
begin
for i in 1 .. 10 loop
dbms_output.put_line('当前循环体内i的值:' || i);
end loop;
end;

-----------------------------------------------------------
--for循环控制语句 递减
-----------------------------------------------------------
begin
for i in reverse 1 .. 10 loop
dbms_output.put_line('当前循环体内i的值:' || i);
end loop;
end;

-----------------------------------------------------------
--嵌套循环和标号
-----------------------------------------------------------
declare
result int := 0;
begin
<<outer>>
for i in 1 .. 20 loop
<<inner>>
for j in 1 .. 10 loop
result := i * j;
dbms_output.put_line('循环时,i=' || i || ',j=' || j || ',result的值:' ||
result);
--当外层循环result值达到200时,跳出整个外层循环
exit outer when result = 200;
--当内层循环result值达到100时,跳出内层循环
exit when result = 100;
end loop inner;
dbms_output.put_line('end inner ,result的值:' || result);
end loop outer;
dbms_output.put_line('end outter ,result的值:' || result);
end;

-----------------------------------------------------------
--游标 for循环
-----------------------------------------------------------
--数据准备
create table test(a varchar2(100));
insert into test values('test1');
insert into test values('test2');
insert into test values('test3');
commit;
--测试开始
declare
testRow test%rowtype;
cursor testRows is
select * from test;
begin
for testRow in testRows loop
dbms_output.put_line(testRow.a ||' '||
testRows%rowcount);
end loop;
end;
--数据销毁
drop table test;

--------------------------------------------------------------
--循环插入数据库语句
declare
maxrecords constant int:=1000;
i int :=1;
begin
for i in 1..maxrecords loop
insert into test(a)
values(to_char('test'||i));
end loop;
dbms_output.put_line(' 成功录入数据!');
commit;
end;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值