Oracle之包-1(包的要求 创建包头)

1.        编写一个管理雇员信息的包emp_mgmt。包中有成员如下:

程序结构

类型

说明

Emp_count

公有变量

跟踪员工的总人数变化,插入和删除员工时要修改该变量的值

init

公有过程

初始化包,初始化员工人数和当前个人所得税率,建议有一个输入参数p_tax,传入当前个人所得税率,暂定为工资的8%

tax_emp

公有函数

通过员工编号计算出员工应交个人所得税款

Hire_emp

公有过程

通过员工编号插入员工

Fire_emp

公有过程

通过员工编号删除员工

emp_tax_record

记录

用于游标C_empRETURN(强类型游标)语句中

C_emp

游标

用于游标FOR循环中,会被过程show_emp_tax所使用

show_emp_tax

公有过程

按工资升序输出所有雇员的应交所得税清单

Exist_emp

私有函数

判断某个编号的员工是否存在,该函数会被hire_empfire_emp等过程调用

sal_null

异常名

工资为空值时的异常名

步骤1:创建包头:

--包头创建

create or replace package emp_mgmt is

Emp_count number(4); --员工总数

p_tax     float; --税率

sal_null Exception;

type   emp_tax_record is record(e_no EMP.empno%type);--税率记录

cursor C_emp return emp_tax_record;--游标

function tax_emp(e_no EMP.empno%type) return float; --计算该员工的税

procedure init(v_tax float:=0.08); --初始化

procedure hire_emp(e_no in EMP.empno%type,e_name in emp.ename%type,e_job in emp.job%type,e_sal in emp.sal%type);--雇佣员工

procedure fire_emp(e_no in emp.empno%type);--炒掉员工

procedure show_emp_tax;--员工工资高低

function Exist_emp(e_no in emp.empno%type) return boolean;--查找该员工是否存在

function getEname(e_no in emp.empno%type) return varchar2;--获得员工名字

procedure getOneEmpTax(e_no in emp.empno%type);       --显示查询员工的税

function getEmpCount return number; --返回员工总数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值