PL/SQL的流程控制

条件控制:
第一种: if ...then .....end if
sql 代码
  1. set  serveroutput on  
  2. declare  
  3.    number1 integer:=90;   
  4.    number2 integer:=60;   
  5. begin  
  6.    if number1>=number2 then  
  7.       dbms_output.put_line('number1大于等于number2');   
  8.    end if;      
  9. end;      
第二种: if.....then.....else.....endif
sql 代码
  1. set  serveroutput on  
  2. declare  
  3.    number1 integer:=80;   
  4.    number2 integer:=90;   
  5. begin  
  6.    if number1>=number2 then  
  7.       dbms_output.put_line('number1大于等于number2');   
  8.    else  
  9.       dbms_output.put_line('number1小于number2');   
  10.    end if;      
  11. end;      
第三种:if嵌套条件控制
sql 代码
  1. set  serveroutput on  
  2. declare  
  3.    number1 integer:=80;   
  4.    number2 integer:=90;   
  5. begin  
  6.    if number1<=number2 then  
  7.       if number1=number2 then  
  8.          dbms_output.put_line('number1等于number2');   
  9.       else  
  10.          dbms_output.put_line('number1小于number2');   
  11.       end if;      
  12.    else  
  13.          dbms_output.put_line('number1大于number2');   
  14.    end if;         
  15. end;     
循环控制:
第一种:loop ...exit .....end loop
sql 代码
  1.   
  2.   
  3. set serveroutput on  
  4. Declare  
  5.   a number :=80;   
  6.   b number :=90;   
  7.   i int :=0;   
  8.     
  9. begin  
  10.   loop   
  11.      a:=a+1;   
  12.      if a=b then  
  13.           exit;   
  14.          else  
  15.           i:=i+1;   
  16.           /*** dbms_output.put_line()只能输出字符*/   
  17.           dbms_output.put_line('loop count:'||to_char(i));       
  18.       end if;   
  19.    end loop ;     
  20.   dbms_output.put_line('loop count:'||to_char(i));   
  21. end;   
第二种:loop...exit ...when...end loop
采用这种方式跟第一种差不多,exit when 实际上相当于
 if 条件 then
      exit
   end if
sql 代码
  1. set serveroutput on  
  2. Declare  
  3.   a number :=80;   
  4.   b number :=90;   
  5.   i int :=0;   
  6.     
  7. begin  
  8.   loop   
  9.      a:=a+1;   
  10.      i:=i+1;     
  11.      exit when a=b;         
  12.    end loop ;     
  13.   dbms_output.put_line('loop count:'||to_char(i));   
  14. end;  
第三种:
while...loop
     执行语句
end loop
sql 代码
  1. set serveroutput on  
  2. Declare  
  3.   a number :=80;   
  4.   b number :=90;   
  5.   i int :=0;   
  6.     
  7. begin  
  8.   while a!=b   
  9.   loop   
  10.      a:=a+1;   
  11.      i:=i+1;          
  12.    end loop ;     
  13.   dbms_output.put_line('loop count:'||to_char(i));   
  14. end;   
第四种:for ...in...loop...end loop
for....in [reverse] 循环上界...循环下界  loop
    执行语句
end loop
sql 代码
  1. set serveroutput on  
  2. Declare  
  3.   a number :=80;    
  4. begin  
  5.   for i in 1..10 loop   
  6.      a:=a+1;    
  7.      dbms_output.put_line('loop count:'||to_char(i));          
  8.    end loop ;     
  9.   dbms_output.put_line('after loop ,the a is:'||to_char(a));   
  10. end;   
 

你可能感兴趣的:(sql)