一、建包package
create or replace package mypag
is
v_n constant number:=10;
procedure myp (v_a varchar);
function myf(v_b number,v_c number) return number;
end;
二、创建package body(同名)
create or replace package body mypag is
--元素1:创建带in参数的存储过程
procedure myp(v_a varchar) is
begin
dbms_output.put_line('我是存储过程' || v_a);
end;
--元素2:创建带in参数的存储函数
function myf(v_b number, v_c number) return number is
begin
dbms_output.put_line('我是存储函数');
return v_b + v_c;
end;
end;
三、访问包中的元素
--调用方法
declare
v_xxx number;
begin
-- 访问常量
dbms_output.put_line(mypag.v_n);
--访问存储过程
mypag.myp('hello');
--访问存储函数
v_xxx := mypag.myf(22, 33);
dbms_output.put_line(v_xxx);
end;
--当作自定义函数在查询语句中使用
select mypag.myf(5,7) from dual;
四、删除包主体和包(先删包主体)
drop package body mypag;
drop package mypag;