PLSQL基础语法二-流程控制,循环

--流程控制
--分支语句
--练习1:字符串
declare
 str varchar2(18):='b';
begin
  if(str = 'a') then
    dbms_output.put_line('if');
    elsif(str = 'b') then
    dbms_output.put_line('else if');
    else
    dbms_output.put_line('else');  
  end if;
  end;
--练习2:数字
declare
 i number:=80;
begin
  if(i = 60) then
   null; --什么也不做,建议加上null,保证语法的完整性
    elsif(i = 80) then
    dbms_output.put_line('else if');
    else
    dbms_output.put_line('else');  
  end if;
  end;
  
--练习3:如果不给值,默认是null
declare
 str varchar2(18);
begin
  if(str = 'a') then
   null; --什么也不做,建议加上null,保证语法的完整性
    elsif(str = '') then
    dbms_output.put_line('空字符串');
    elsif(str is null) then
    dbms_output.put_line('null');
    else
    dbms_output.put_line('else');  
  end if;
  end;
--练习4:如果不给值,默认是null
declare
 i number;
begin
  if(i = 6) then
   null; --什么也不做,建议加上null,保证语法的完整性
    elsif(i is null) then
    dbms_output.put_line('null');
    else
    dbms_output.put_line('else');  
  end if;
  end;
--循环控制
--练习1:简单loop循环
declare
 i number:=0;
begin
  loop
    i:=i+1;
    dbms_output.put_line(i);
       exit when i=5;--结束循环
    end loop;
  end;
--练习2:嵌套循环
declare
 i number:=0;
 j number:=0;
begin
  loop
    i:=i+1;
    dbms_output.put_line(i);
       exit when i=5;--结束循环
       j:=0;
       /***嵌套循环***/
       loop
         dbms_output.put_line('j:'||j);
          exit when j=2;--结束循环
           j:=j+1;
       end loop;
        /***嵌套循环***/
       
    end loop;
  end;
--练习3嵌套循环2:内层循环满足某个条件,直接跳出外层循环  
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
         dbms_output.put_line('j:'||j);
          exit outer when j=2;--结束外层循环
           j:=j+1;
       end loop;
        /***嵌套循环***/
    end loop;
  end;

--练习4:for循环(如果加上reverse是倒序循环)
declare
begin
  for i in reverse 1..5 loop
     Dbms_Output.put_line(i);
    end loop;
  end;
--练习5:while循环
declare
 i number:=0;
begin
  while(i<5) loop
  i:=i+1;
   Dbms_Output.put_line(i);
  end loop;
  end;



你可能感兴趣的:(oracle,plsql)