要执行的语句;
EXIT WHEN <条件语句> /*条件满足,退出循环语句*/
END LOOP;
例:DECLARE
int NUMBER(2) :=0;
BEGIN
LOOP
int := int + 1;
DBMS_OUTPUT.PUT_LINE('int 的当前值为:'||int);
EXIT WHEN int =10;
END LOOP;
END;
FOR 循环计数器 IN [ REVERSE ] 下限 .. 上限 LOOP
要执行的语句;
END LOOP;
DECLARE
V_counter NUMBER := 10;
BEGIN
INSERT INTO temp_table(num_col) VALUES (v_counter );
FOR v_counter IN 20 .. 25 LOOP
INSERT INTO temp_table (num_col ) VALUES ( v_counter );
END LOOP;
END ;
例子,继续上一章的例子写
DECLARE
v_name EMP.ename%type ;
v_id EMP.empno%type;
v_story VARCHAR2(50);
v_home varchar2(10);
v_loc varchar2(10);
testnum number(2,0):=0;
testnum1 number(2,0):=1;
testnum2 number(3,0):=160;
BEGIN
select ename,empno into v_name, v_id from emp
where job='PRESIDENT';
select deptno into v_loc from EMP
where ename=v_name;
--if elsif的使用
if v_id<=7478 then v_story:=' 因为X生活不和谐,他们最后离婚了';
elsif v_id>7378 then v_story:=' 他们幸福滴生活在一起!';
end if;
--case when then 的使用
v_home:=
case v_loc
when 10 then 'BeiJing'
when 20 then 'Xian'
else 'wc'
end;
--loop循环的使用
loop
testnum:=testnum+1;
dbms_output.put_line('故事开始倒计时'||testnum||' ');
exit when testnum=5;
end loop;
dbms_output.put_line('王晨遇到一个妹子,他的名字是'||v_name||',他的编号是'||v_id||',五年之后'||v_story||',他们住在'||v_home||'.');
--for循环的使用
--FOR 循环计数器 IN [ REVERSE ] 下限 .. 上限 LOOP
--要执行的语句;
--END LOOP;
dbms_output.put_line('他们生了很多孩子');
for testnum1 in 1..20 loop
testnum2:=testnum2+1;
dbms_output.put_line('孩子的身高分别为:'||testnum2);
end loop;
END;