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