TA的每日心情 | 开心 2021-12-13 21:45 |
---|
签到天数: 15 天 [LV.4]偶尔看看III
|
1,包是被组合在一起的相关对象的集合。包是用来封装过程,函数用的。可以有多个过程,函数
2,包由两个部分组成:包头Specification和包体Body。
3,包头声明描述变量、常量、游标、和子程序;
4,包体完全定义子程序和游标。
5,当包中任何函数或过程被调用,包就被加载入内存中。
6,包中的任何子程序访问速度将大大加快。
实例rem **********************************
rem **package包
rem **********************************
--包头部分
create or replace package hand_train_pkg is
function hand_function(p_param1 varchar2,
p_param2 varchar2)
return varchar2;
procedure hand_procedure(p_param1 varchar2,
p_param2 in out varchar2);
end hand_train_pkg;
--body部分
create or replace package body
hand_train_pkg is
g_public_flag varchar2(1) := 'Y';
function hand_function(p_param1 varchar2,
p_param2 varchar2)
return varchar2 is
begin
if g_public_flag = 'Y' then
return p_param1 || ':' || p_param2;
else
return null;
end if;
end;
procedure hand_procedure(p_param1 varchar2,
p_param2 in out varchar2) is
begin
if g_public_flag = 'Y' then
p_param2 := p_param1 || ':' || p_param2;
else
p_param2 := p_param2;
end if;
end;
end hand_train_pkg;
--调用包中的函数和过程
declare
v_param1 varchar2(30);
v_param2 varchar2(30);
v_param3 varchar2(30);
begin
v_param1 := 'c';
v_param2 := 'd';
--调用函数
v_param3 := hand_train_pkg.hand_function(v_param1,
v_param2);
hand_train_pkg.hand_procedure(p_param1 => v_param1,
p_param2 => v_param2);
dbms_output.put_line('1:'||v_param3);
dbms_output.put_line('2:'||v_param2);
end; |
|