程序包

                         程序包

语法:

Create [or replace] package pack_name is

[declare_variable];---规范内声明的变量

[declare_type];-----规范内声明的类型

[declare_cursor];----规范内定义的游标

[declare_function];---规范内声明的函数

[declare_procedure];----规范内声明的存储过程

End [pack_name]----包的名称

 

例子:

Create or replace package pack_emp is

Function fun_avg_sal(num_deptno number)return number;--获取指定部门的平均工资

Procedure pro_regulate_sal(var_jobvarchar2,num_proportion number);--按照指定比例上调指定职位的工资

End pack_emp;

/

 

程序包主体:

Create [or replace] package body pack_name is

[inner_variable]—内部变量

[cursor_body]-----游标主体

[function_title]---从规范中引入的函数头部声明

{ begin

  Fun_plsql;-----函数主要功能的实现部分

[exception]

 [dowith_sentences;]---异常处理语句

End [fun_name]}---函数名称

[procedure_title]----- 从规范中引入的存储过程头部声明

 {

  Begin

    Pro_plsql;-----存储过程主要功能的实现部分

 

  [exception]

   [dowith_sentences]---异常处理语句

   End[pro_name]}---存储过程的名称

‘’’’’’’’

End [pro_name];---包名

例子:

 

 

Create or replace package body pack_emp is

 Functionfun_avg_sal(num_deptno number) return number is

Num_avg_sal number;

Begin

 Selectavg(sal)

Into num_avg_sal

From emp

Where deptno=num_deptno;

Return(num_avg_sal);

Exception

 Whenno_data_found then

Dbms_output.put_line(‘该部门编号不存在雇员记录’);

Return 0;

End fun_avg_sal;

Procedure pro_regulate_sal(

Var_job varchar2,

Num_propprtion number) is

Begin

 Updateemp

  Setsal=sal*(1+num_proportion)

  Wherejob=var_job;

End pro_regulate_sal;

End pack_emp;

 

 

 

调用:

Declare

 Num_deptnoemp.deptno%type;

Var_job emp.job%type;

Num_avg_sal emp.sal%type;

Num_proportion number;

Begin

  Num_deptno:=10;

 Num_avg_sal:=pack_emp.fun_avg_sal(num_deptno);

Dbms_output.put_line(num_deptno||’号部门平均工资是:’||num_avg_sal);

Var_job:=’SALESMAN’;

Num_proportion:=0.1;

Pack_emp.pro_regulate_sal(var_job,num_proportion);

End;

/

 

删除包:

Drop package ‘包名

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值