oracle-plsql 流程控制

条件语句

--方法一

declare

    v_sum user.sum%type;

begin

    select sum into v_sum from user from id=1;

    if v_sum>=100 then dbms_output.put_line('优秀');

    elsif v_sum>=60 then dbms_output.put_line('良好');

    else dbms_output.put_line('差生');

    end if;

end;

--方法一修改版

declare

v_sum user.sum%type;

v_temp varchar2(20);

begin

select sum into v_sum from user from id=1;

if v_sum>=100 then v_temp := '优秀';

elsif v_sum>=60 then v_temp := '良好';

else v_temp := '差生';

dbms_output.put_line(v_temp);

end if;

end;

--方法二

declare

    v_name varchar2(10);

    v_temp varchar2(10);

begin

    select name into v_name from user where is=1;

    v_temp := case _name when '张三' then ‘A’

                                               when '李四' then 'B'

                                                when '王五' then 'C'

                                                else '赵六'

                         end;

dbms_output.put_line(v_temp);

end;

循环语句

--方法一(循环1-100)

declare
    v_i number(5) :=1;--初始化条件

begin

    loop   --循环体

        dbms_output.put_line(v_i);  

        v_i := v_i + 1;   --迭代条件

     exit when v_i >= 100;   --循环条件

    end loop;

end;

--方法二

declare

    v_i number(5);   --初始化条件

begin

    while v_i<= 100 loop

            dbms_output.put_line(v_i);

            v_i := v_i + 1;

    end loop;

end;

--方法三

begin

    for i in 1..100 loop

        dbms_output.put_line(i);

    end loop;

end;

--方法四(输出2-100的质数,goto标签)

declare

v_flag number(1) :=1;

begin

    for v_i in 2..100 loop

        for v_j in 2..sqrt(v_i) loop

               if mod(v_i,v_j)=0  then v_flag :=0;

                goto label;     --当执行到这里时,跳转到指定标签

        end if;

        end loop;

       <

        if v_flag=1 then dbms_output.put_line(v_i);

        end if;

        v_i :=1;

    end loop;

end;

--方法五(打印1-100,到50时,跳出循环)

begin

    for i in 1..100 loop

        if i=50 then goto label;

        end if;;

        dbms_output.put_line(i);

    end loop;

        <

        dbms_output.put_line('打印结束');

end;

--方法五修改版

begin

    for i in 1..100 loop

        if i=50 then dbms_output.put_line('打印结束');

        exit;

        end if;

        dbms_output.putl_line(i);

    end loop;

end;

你可能感兴趣的:(oracle-plsql 流程控制)