Oracle(七)--> PL/SQL 流程及要点(描述清晰 and 多图)

来源:互联网 发布:ubuntu恢复出厂 命令 编辑:程序博客网 时间:2024/06/16 15:51
(营养早餐~~ =。=大笑
一、PL/SQL 所包含的内容

1、plsql 基本的语法格式
2、记录类型 type ... is record ( , , , );
3、流程控制
   3.1 条件判断(两种)
        方式一: id ... then elseif then ... else ... endid;
        方式二: case ... when ... then ... end;
   3.2 循环结构(三种)
        方式一:loop ... exit when ... end loop;
        方式二:while ... loop ... end loop;
        方式三:for i in ... loop ... end loop;
   3.3 goto、exit
4、游标的使用(类似于 Java 中的 Interator)
5、异常处理(三种方式)

6、能够完成一个存储函数(Function)[有返回值],存储过程[没有返回值]
7、能够完成一个触发器

简单赋值:

记录类型


复杂的记录类型

二、使用 %TYPE
    定义一个变量,其数据类型与已经定义的某个数据变量的类型相同,或者与数据库的某个列的数据类型相同,这时可以使用 %TYPE。
使用 %type 的优点:
    -- 所引用的数据库中的列的个数和数据类型可以不必知道
    -- 所引用的数据库中的列的个数和数据类型可以实时改变

三、使用 %ROWTYPE
    PL/SQL 提供 %ROWTYPE 操作符,返回一个记录类型,其数据类型和数据库表的数据结构一致。
使用 %ROWTYPE 的优点:
    -- 所引用的数据库中的列的个数和数据类型可以不必知道
    -- 所引用的数据库中的列的个数和数据类型可以实时改变
例1:

例2:

四、需要注意的 N 个地方
4.1 注意使用记录类型和不使用记录类型时的格式(逗号,分号的位置等)
4.2 输出语句为:dbms_output.put_line();
4.3 使用 SELECT 语句对记录变量进行赋值,只要保证记录字段与查询结果列表中的字段相匹配即可
4.4 不能将 SELECT 语句中的赋值给布尔类型
4.5 运算符和表达式(数据定义)
    关系运算符
    
    一般运算符
               运算符                   意义
                 +                      加号
                 -                      减号 
                 *                      乘号
                 /                      除号
                :=                     赋值号
                =>              关系号(游标参数的赋值)
                ..                   范围运算符
                ||                   字符连接符
    逻辑运算符
    
4.6 变量赋值
    在 PL/SQL 编程中,变量赋值是一个值得注意的地方,语法如下:
    variable := expression;
    variable 是一个 PL/SQL 变量,expression 是一个 PL/SQL 表达式
    1)字符及数字运算特点
       -- 空值加数字仍是控制:NULL + <数字> = NULL
       空值加(连接)字符,结果为字符:NULL || <字符串> = <字符串>
    2)BOOLEAN 赋值
       -- 布尔值只有 ture 、false 及 null 三个值
    3)数据库赋值
       -- 数据库赋值是通过 SELECT 语句来完成的,每次执行 SELECT 语句就赋值一次,一般要求赋值的变量和 SELECT 的列名要一一对应。
4.7 可转换的类型赋值
    ·char 转换为 number
      使用 to_number 函数来完成字符到数字的转换,如:
      v_total := to_number('100.0') + sal;
    ·numebr 转换为 char
      使用 to_char 函数可以实现数字到字符的转换,如:
       v_comm := to_char('123.45')||'元'
    ·字符转换为日期
      使用 to_date 函数可以实现字符到日期的转换,如:
      v_date := to_date('2015.8.31' , 'yyyy.mm.dd');
    ·日期转换为字符
      使用 to_char 函数可以实现日期到字符的转换,如:
      v_to_day := to_char(SYSDATE , 'yyyy.mm.dd hh24:mi:ss');




0 0
原创粉丝点击