码迷,mamicode.com
首页 > 数据库 > 详细

PL/SQL流程控制

时间:2016-08-01 00:18:38      阅读:315      评论:0      收藏:0      [点我收藏+]

标签:

1  数据库赋值

  数据库赋值是通过SELECT语句来完成的,每次执行SELECT语句就赋值一次,一般要求被赋值变量与SELECT中的列名要一一对应。

 

 

2 不能将SELECT语句中的列赋值给布尔变量

 

3 条件语句

IF 布尔表达式 THEN

PL/SQL 语句和SQL语句

END IF;

 

IF 布尔表达式 THEN

PL/SQL 语句和SQL语句

ELSE

其他语句

END IF;

 

IF 布尔表达式 THEN

PL/SQL 语句和SQL语句

ELSEIF 其它布尔表达式 THEN

其他语句

 

ELSEIF 其它布尔表达式 THEN

其他语句

 

 

END IF;

 

 

注意 :ELSEIF是一个完整的关键词 中间不能加空格

 

4

Case when ...then

有点像switch语句

 

Case 后面跟着一个变量和 when 后面的常量要同一个类型

要被赋值的变量写在case前面 并加上:=

 

5循环

使用循环输出1-100 (三种方式)

 

--使用循环语句打印1-100

--1 初始化条件 2循环体 3 循环条件 4迭代

 

Do-while

declare

     --1

     v_i number(5):=1;

begin

    loop

        --2

        dbms_output.put_line(v_i);

        

        --3

        exit when v_i>=100;

          

        --4

         v_i:=v_i+1;

           end loop;

 

end;

 

第二种方式while 循环

--使用循环语句打印1-100

--1 初始化条件 2循环体 3 循环条件 4迭代

 

declare

     --1

     v_i number(5):=1;

begin

     while v_i<=100 

      loop dbms_output.put_line(v_i);

      v_i:=v_i+1;

      end loop;

 

end;

 

 

第三种方式 for循环

 

--使用循环语句打印1-100

--1 初始化条件 2循环体 3 循环条件 4迭代

 

 

 

     

begin

    for c in 1..100 loop

     dbms_output.put_line(c);

     end loop;

end;

 

 

输出2-100的质数  两层循环加算法

 

declare

 v_i number(3):=2;

 v_j number(3):=2;

 v_flag number(1):=1;

 

begin

  while v_i<=100  loop

  

    while v_j<=sqrt(v_i) loop

    

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

     

     end if;

     v_j:=v_j+1;

     end loop;

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

     end if;

      v_j:=2;

     v_i:=v_i+1;

    

     v_flag:=1;

    end loop;

end;

 

6 goto  

格式 goto label

在某个地方再定义一个 label

 

7exit

使用exit可以直接结束程序

1  数据库赋值

  数据库赋值是通过SELECT语句来完成的,每次执行SELECT语句就赋值一次,一般要求被赋值变量与SELECT中的列名要一一对应。

 

 

2 不能将SELECT语句中的列赋值给布尔变量

 

3 条件语句

IF 布尔表达式 THEN

PL/SQL 语句和SQL语句

END IF;

 

IF 布尔表达式 THEN

PL/SQL 语句和SQL语句

ELSE

其他语句

END IF;

 

IF 布尔表达式 THEN

PL/SQL 语句和SQL语句

ELSEIF 其它布尔表达式 THEN

其他语句

 

ELSEIF 其它布尔表达式 THEN

其他语句

 

 

END IF;

 

 

注意 :ELSEIF是一个完整的关键词 中间不能加空格

 

4

Case when ...then

有点像switch语句

 

Case 后面跟着一个变量和 when 后面的常量要同一个类型

要被赋值的变量写在case前面 并加上:=

 

5循环

使用循环输出1-100 (三种方式)

 

--使用循环语句打印1-100

--1 初始化条件 2循环体 3 循环条件 4迭代

 

Do-while

declare

     --1

     v_i number(5):=1;

begin

    loop

        --2

        dbms_output.put_line(v_i);

        

        --3

        exit when v_i>=100;

          

        --4

         v_i:=v_i+1;

           end loop;

 

end;

 

第二种方式while 循环

--使用循环语句打印1-100

--1 初始化条件 2循环体 3 循环条件 4迭代

 

declare

     --1

     v_i number(5):=1;

begin

     while v_i<=100 

      loop dbms_output.put_line(v_i);

      v_i:=v_i+1;

      end loop;

 

end;

 

 

第三种方式 for循环

 

--使用循环语句打印1-100

--1 初始化条件 2循环体 3 循环条件 4迭代

 

 

 

     

begin

    for c in 1..100 loop

     dbms_output.put_line(c);

     end loop;

end;

 

 

输出2-100的质数  两层循环加算法

 

declare

 v_i number(3):=2;

 v_j number(3):=2;

 v_flag number(1):=1;

 

begin

  while v_i<=100  loop

  

    while v_j<=sqrt(v_i) loop

    

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

     

     end if;

     v_j:=v_j+1;

     end loop;

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

     end if;

      v_j:=2;

     v_i:=v_i+1;

    

     v_flag:=1;

    end loop;

end;

 

6 goto  

格式 goto label

在某个地方再定义一个 label

 

7exit

使用exit可以直接结束程序

PL/SQL流程控制

标签:

原文地址:http://www.cnblogs.com/HJL085/p/5724270.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!