ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

Oracle PL/SQL

2022-06-08 18:04:34  阅读:148  来源: 互联网

标签:end 变量 条件 数据类型 语法 SQL Oracle 执行 PL


一. 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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有