SQL随记(三)

1.关于package:

包的作用:可以将任何出现在块声明的语句(过程,函数,游标,游标,类型,变量)放入包中,相当于一个容器。

包的好处:在包中的(过程,函数,游标,游标,类型,变量)相当于sql/plus的全局变量。总的来说包就相当于java中的类,而在里面定义的就是接口

包头的定义:create or replace package package_name 

      is|as 

包体的定义:create or replace package body package_name

      is|as 

包头就是定义一些接口,包体就是这些接口的具体实现。

create or replace package w_ping --包头
as
     function numAdd(num1 number,num2 number) return number;
     procedure getUser(uid in varchar2); 
end;

create or replace package body w_ping -- 包体
as
    --实现函数
    function run(num1 number,num2 number) return number
    as
        num number;
    begin
        num:=num1-num2;
        return num;
    end;
    --实现过程
    procedure  getUser (uid in varchar2 )
    as
     uid :=&uid
    begin
        select * from user u where u.id = uid;
   end;

-----包的调用
declare
  num number;
  uid varchar2;
begin
     --调用包中的函数
     select w_ping .numAdd(5,6) into num from dual;
 end;

  

2.关于is和as的区别:在存储过程和函数中is和as没什么区别,在view中只能用as不能用is,在游标中只能用is不能用as。

3.存储过程和函数链接:http://czmmiao.iteye.com/blog/1815000

原文地址:https://www.cnblogs.com/lirenzhujiu/p/7049611.html