PLSQL里面的 程序包,触发器 ,以及游标的后续

   1.  程序包  (类比于java中接口的实现)

      使用程序包的好处:
        1-1, 更容易的增强和维护代码
       1- 2, 最小化代码重新编译的需求

  

CREATE OR REPLACE PACKAGE JIA IS    --程序包

  PROCEDURE PLUS(A IN NUMBER, B IN NUMBER);
  FUNCTION DIVIDE(A IN NUMBER, B IN NUMBER) RETURN NUMBER;

END JIA;

 

    

CREATE OR REPLACE PACKAGE BODY jia IS      --程序体

  PROCEDURE PLUS(A IN NUMBER, B IN NUMBER) AS
  BEGIN
    P(A + B);
  END;

  FUNCTION DIVIDE(A IN NUMBER, B IN NUMBER) RETURN NUMBER AS
    C NUMBER;
  BEGIN
    C := A / B;
    RETURN C;
  EXCEPTION
    WHEN ZERO_DIVIDE THEN
      P('除数不能为0');
  END;
END jia;

 

declare      --test-window
 
 i NUMBER;
begin
   jia.PLUS(2,3);
   i:= jia.DIVIDE(5,3) ;
   p(i);
end;

 2.触发器

  触发器是一种特殊的存储过程
    insert delete update
            2-1. 语法:
        CREATE OR REPLACE TRIGGER 触发器名
          AFTER[BEFORE] 执行的操作(用OR运算符可以并联多个操作) ON 表名[OF 列名]
          [FOR EACH ROW]--加上这行代码表示语句级, 只要有一行记录受到影响, 就会触动触发器
        BEGIN
          -- 需要执行的代码
        END;
   2-2. 触发器的类型:
        语句级触发器--不管一条sql语句操作了多少行, 触发器只触发一次
        行级触发器--操作的过程影响了多少行, 就触发多少次触发器    [FOR EACH ROW]   
            伪记录变量:
                :OLD
                :NEW

 

3.游标

    游标的种类:
     3-1.   静态游标
            隐式游标

        在执行增删改查 select :(查询操作仅在返回单行记录时)的操作的时候,
                可以用SQL关键字获取到一个隐式游标
                在隐式游标中, 以上四个属性分别代表的意思是:
                    1, %FOUND-->执行的操作是否成功
                    2, %NOTFOUND-->与FOUND相反
                    3, %ROWCOUNT-->执行操作所影响的行数
                    4, %ISOPEN--判断游标当前的状态

  3-2.显式游标
                使用时必须明确的声明游标的类型, 以及关联相关的查询语句
                显式游标完全由程序员来控制

posted on 2017-12-26 11:44  左剃头  阅读(143)  评论(0编辑  收藏  举报

导航