循环结构
循环语句loop
这种循环语句以loop开头
以end loop;结束,循环至少被执行一次。
下面是使用loop循环的一个简单例子
--先创建一张最简单的users表
create table users(
id number(8),
name varchar2(30)
);
--编写一个过程,可以输入用户名,并循环添加10个用户到users表
--用户编号从1开始增加
create or replace procedure sp_pro6(spName varchar2) is
--定义:=表示赋值
v_num number:=1;
begin
loop
insert into users(id,name) values(v_num,spName);
--判断是否要退出循环
exit when v_num=10;
--自增
v_num:=v_num+1;
end loop;
end;
在命令行下创建并使用反斜杠执行以上语句后
就可以使用如下语句调用该过程了
SQL> exec sp_pro6('dean');
PL/SQL procedure successfully completed
SQL> select * from users;
ID NAME
--------- ------------------------------
1 dean
2 dean
3 dean
4 dean
5 dean
6 dean
7 dean
8 dean
9 dean
10 dean
10 rows selected
SQL>
使用while--loop循环
--编写一个过程,可以输入用户名,并循环添加10个用户到users表
--用户编号从11开始增加,到20结束
create or replace procedure sp_pro6(spName varchar2) is
--定义:=表示赋值
v_num number:=11;
begin
while v_num<=20 loop
insert into users(id,name) values(v_num,spName);
--判断是否要退出循环
exit when v_num=10;
--自增
v_num:=v_num+1;
end loop;
end;
下面的for循环语句缺乏灵活性,不建议使用
循环语句
--for循环
基本的for循环结构如下
begin
for i in reverse 1..10 loop
insert into users(id,name) values(i,'dean');
end loops;
end;