- 7
- 0
- 约1.97千字
- 约 3页
- 2019-09-10 发布于山西
- 举报
《数据库开发技术》课程之实验八
PL/SQL的触发器与包
实验目的
掌握正确使用触发器的方法。
掌握包的正确使用方法。
实验内容和要求
编写一个触发器,在DEPT表执行INSERT语句后被激发,此触发器将新部门的编号(deptno)、名称(dname)及执行此操作的用户(USER)、当时的日期(SYSDATE)插入N_DEPT表{注:此表已建好,表结构为N_DEPT(DEPTNO NUMBER(4),DNAME VARCHAR2(10), UNAME VARCHAR2(20), INDATE DATE)}。
创建触发器CHECK_SAL,禁示对职务为CLERK的雇员的工资修改值超出1000至2000的范围,即CLERK职务员工的修改后工资值只能在1000~2000之间。要求测试该触发器。
步骤1:创建和编译触发器:
步骤2:在EMP表中修改记录,对触发器进行测试:
执行结果:
编写一个管理雇员信息的包emp_mgmt。包中有成员如下:
程序结构
类型
说明
Emp_count
公有变量
跟踪员工的总人数变化,插入和删除员工时要修改该变量的值
init
公有过程
初始化包,初始化员工人数和当前个人所得税率,建议有一个输入参数p_tax,传入当前个人所得税率,暂定为工资的8%。
tax_emp
公有函数
通过员工编号计算出员工应交个人所得税款
Hire_emp
公有过程
通过员工编号插入员工
Fire_emp
公有过程
通过员工编号删除员工
emp_tax_record
记录
用于游标C_emp的RETURN(强类型游标)语句中
C_emp
游标
用于游标FOR循环中,会被过程show_emp_tax所使用
show_emp_tax
公有过程
按工资升序输出所有雇员的应交所得税清单
Exist_emp
私有函数
判断某个编号的员工是否存在,该函数会被hire_emp和fire_emp等过程调用
sal_null
异常名
工资为空值时的异常名
……
公有或私有变量
可加入你认为需要的各种变量,但在程序中要有变量用途的注释
步骤1:创建包头和包体:
-- 包头部分
执行结果:
程序包已创建。
-- 包体部分
--------------------私有函数:判断员工是否存在----------------------------
------------------------------- 初始化过程 ----------------------------
------------------公有函数:通过员工编号计算出员工应交个人所得税款----------------------------
------------------公有过程:通过员工编号插入员工----------------------------
------------------公有过程:通过员工编号删除员工----------------------------
------------------公有过程:按工资升序输出所有雇员的应交所得税清单----------------------------
执行结果:
程序包主体已创建。
步骤2:初始化包:
执行结果:
当前个人所得税率:8%
当前雇员总人数16
初始化过程已经完成!16
步骤3:按工资升序输出所有雇员的应交所得税清单:
执行结果:
7369, SMITH tax is 7744.
7900, JAMES tax is 9196.
7876, ADAMS tax is 10648.
7521, WARD tax is 12100.
7654, MARTIN tax is 12100.
7934, MILLER tax is 12584.
7844, TURNER tax is 14520.
7499, ALLEN tax is 15488.
7951, OLIVEN tax is 20328.
7782, CLARK tax is 23716.
7948, MIKE tax is 26136.
7698, BLAKE tax is 27588.
7566, JONES tax is 28798.
7788, SCOTT tax is 29040.
7902, FORD tax is 29040.
7839, KING tax is 48400.
当前雇员总人数: 16
PL/SQL 过程已成功完成。
步骤4:对员工表插入一条新记录:
执行结果:
雇员8001已插入!
当前雇员总人数17
PL/SQL 过程已成功完成。
步骤5:通过全局变量EMP_COUNT查看雇员人数:
显示结果为:
当前雇员总人数:17
PL/SQL 过程已成功完成。
步骤6:删除员工表新插入的记录
执行结果:
雇员
您可能关注的文档
- 实验5有限冲激响应数字滤波器设计史功勋.doc
- 实验5板式塔的流体力学性能的测定.doc
- 实验5集合和向量的基本运算.doc
- 实验5:电动执行器.doc
- 实验6 萃取与折光率的测定.doc
- 实验6 复合梯形公式.doc
- 实验6 射极跟随器.doc
- 实验6 文档高级排版技术.doc
- 实验6 方向观测法测水平角.doc
- 实验6 有限冲激响应数字滤波器设计.doc
- THEBQIA-防作弊考场监督检查规范编制说明.pdf
- TZGWJHXH40-2022 变压吸附型制氧机用膜片阀.pdf
- TTMAC-锂离子电池黑粉湿法冶金回收工艺规范.pdf
- 数字式引伸计标定器校准规范预审稿编制说明.pdf
- TWAPIA040.2-2020 关键信息基础设施无线局域网技术要求 第2部分: 电力行业扩展要求.pdf
- 实验室安全防护服,全球前12强生产商排名及市场份额(by QYResearch).docx
- 国开2026年《新媒体伦理与法规》形成性考核1-5答案.docx
- DB15T4281-2026 湖泊环境微塑料监测技术指南.pdf
- TTMAC-PCB用高频高速低损耗基板材料技术规范及编制说明.pdf
- TSXJP-混凝土用耐蚀钢筋焊接网应用技术要求.pdf
原创力文档

文档评论(0)