数据库
首页 > 数据库> > Oracle PL/SQL

Oracle PL/SQL

作者:互联网

一. PL/SQL: 过程化语言,是专门为Oracle开发的一门语言。

  1. PL/SQL块:3部分组成

    1.1 声明部分(declare):可以省略

     主要是用来定义一些变量,游标,类型等等。

    1.2 执行部分(begin):不能省略

     主要用来编写具体的业务逻辑执行的代码。

    1.3 异常处理(exception):可以省略

     主要用来捕获程序中出现的异常情况,并进行处理

    语法:

      [declare

       变量声明:

       类型声明:

       游标定义: ]

      begin

       编写业务逻辑的代码执行:

      [exception

       异常处理的代码 ]

      end;

  注意:在PL/SQL块中每一条语句之后必须要使用";"结尾

  2. 数据类型

    2.1 简单的数据类型

    (1)数值型:number,int

    (2)字符串类型:char,varchar2,long

    (3)时间类型:date,timestamp

    (4)布尔类型:boolean:true/false

    2.2 特殊数据类型

    (1)%type:定义的变量的数据类型和某一张表中的指定字段的数据类型保持一致

      语法:变量名 表名.字段名%type;

    (2)record:记录类型,可以将多个变量封装成一个整体,在后续的使用过程中直接使用该记录

      使用步骤:1. 定义一个记录类型(自定义数据类型)

             type 记录名 is record(

              变量名  数据类型,

              变量名  数据类型,

              ......

             );

           2. 声明一个记录类型的变量

            变量名  记录名

           3. 在访问记录类型里面的变量的时候需要使用记录类型定义的变量来访问

            记录名.变量名

      例子: declare

           type emp_datas is record(

            id emp.eno%type,

            name emp.ename%type,

            sal emp.sal%type

           );

           edata emp_datas;

          begin

           select eno,ename,sal into edata from emp where eno = '01';

           dbms_output.put_line(edata.id,edata.name,edata.sal);

          end

    (3)%rowtype:行类型,定义该类型的变量就相当于拥有该表中所有列的变量

      语法:变量名 表名%rowtype;

  3. 变量的定义

    在内存中开辟存储空间来保存数据

    语法:变量名 数据类型[长度] [:=初始值]

    例子:a int := 10;

    注意:定义变量的时候变量名必须符合规范,在赋值的时候要使用":=",变量的数据类型是字符串类型的时候需要写长度

  4. 常量的定义

    语法:常量名 constant 数据类型[长度] := 常量值

    例子:a constant int := 10;

    注意:常量定义时必须赋值

二. PL/SQL中的流程控制语句

  程序结构有3种

  1. 顺序结构:从上往下依次执行

  2. 分支结构:根据条件结果选择不同的执行内容

  (1)if:单分支语句

    语法:if 条件判断 then

        条件成立时执行的代码

       end if;

  (2)if ...... else ......:双分支语句

    语法:if 条件判断 then 

        条件成立时执行的代码

       else

        条件不成立时执行的代码

       end if;

  (3)if ...... elsif ...... else:多分支语句

    语法:if 条件判断1 then 

        条件1成立时执行的代码

       elsif 条件判断2 then

        条件2成立时执行的代码

       ...

       else

        条件不成立时执行的代码

       end if;

  (4)case ... when语句:进行等值匹配

    语法:case 变量

        when 值1 then

          当变量的值等于值1时执行的代码

        when 值2 then

          当变量的值等于值2时执行的代码

        ....

        else

          以上的值都不等时执行的代码

        end case;

  3. 循环结构:在满足指定的条件的前提下,重复执行某一段代码

  (1)loop:

    语法:loop

        循环体

        exit when 循环条件;

        循环体

        end loop;

    执行顺序:先执行循环体,然后判断循环条件,如果条件不成立则继续执行循环

         如果条件成立则退出循环

  (2)while:

    语法:while 循环条件 loop

        循环体

       end loop;

    执行顺序:判断循环条件,如果条件成立则执行循环体,如果条件不成立则退出循环

  (3)for:

    语法:for 循环变量 in [reverse] 下限..上限|游标名 loop

        循环体

       end loop;

    注意:reverse:代表反转,相当于从上限到下限

标签:end,变量,条件,数据类型,语法,SQL,Oracle,执行,PL
来源: https://www.cnblogs.com/LuoYB/p/16354834.html