流程控制之if语句:
-
declare str varchar2(3):='abc'; begin if(str='abc') then dbms_output.put_line('abc'); elsif(str='bc') then dbms_output.put_line('bc'); else dbms_output.put_line('其他'); end if; end;
流程控制之循环语句:
- 简单循环:
--循环控制,简单循环 declare i number:=0; begin loop i:=i+1; dbms_output.put_line(i); if(i=5) then exit; end if; end loop; end;
- 嵌套循环:
结果如下:--循环控制,嵌套循环 declare i number:=0; j number:=0; begin loop i:=i+1; dbms_output.put_line(i); exit when i=5; --********************** j:=0; loop j:=j+1; dbms_output.put_line('abc:'||j); exit when j=2; end loop; --********************** end loop; dbms_output.put_line('循环结束'); end;
1 abc:1 abc:2 2 abc:1 abc:2 3 abc:1 abc:2 4 abc:1 abc:2 5 循环结束
- 嵌套循环之内层循环结束外层循环:
执行结果如下:--循环控制,嵌套循环,内层循环退出外层循环 declare i number:=0; j number:=0; begin <<outer>>loop i:=i+1; dbms_output.put_line(i); exit when i=5; --********************** j:=0; <<inner>>loop j:=j+1; dbms_output.put_line('abc:'||j); exit outer when j=2;--这样写可以退出外层循环。 end loop; --********************** end loop; dbms_output.put_line('循环结束'); end;
1 abc:1 abc:2 循环结束
- for循环和while循环:
--for循环 begin for i in 1 .. 5 loop dbms_output.put_line(i); end loop; end; --while循环 declare i number:=0; begin while(i<5) loop dbms_output.put_line(i); i:=i+1; end loop; end;
- 其实都是Loop end Loop;循环,重点是要掌握Loop循环。