实验五 触发器和包[精选].docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验五 触发器和包[精选]

福建工程学院计算机与信息科学系 实验报告– 2014 学年第 一 学期 任课老师: 课程名称 数据库开发技术 班级 座号 姓名 实验题目 实验五 PL/SQL的触发器与包 实验时间 2013.11.28 实验目的、要求 实验目的 掌握正确使用触发器的方法。 掌握包的正确使用方法。 实验设计内容 *用触发器跟踪对表EMP的DML操作信息,提供审计和日志记录。(提示:使用触发器谓词) -- 插入测试: Insert into emp(empno,ename,job,sal) values(7962,ROSE, CLERK, 2100); 执行结果如下: 已在 EMP表 中插入数据! -- 删除测试: Delete from emp where empno=7369; 执行结果如下: 已删除 EMP表 中的数据! -- 修改测试: Update emp set sal=2000 where empno=7369; 执行结果如下: 已更新 EMP表 中的数据! 创建触发器CHECK_SAL,禁示对职务为CLERK的雇员的工资修改值超出1000至2000的范围,即CLERK职务员工的修改后工资值只能在1000~2000之间。要求测试该触发器 测试: 编写一个管理雇员信息的包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 初始化过程已经完成! 步骤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:对员工表插入一条新记录: EXECUTE emp_mgmt.hire_emp (8001,小王,CLERK,1000); 执行结果: 雇员8001已插入! 当前雇员总人数17 PL/SQL 过程已成功完成。 步骤5:通过全局变量EMP_COUNT查看雇员人数: 显示结果为: 当前雇员总人数:17 PL/SQL 过程已成功完成。 步骤6:删除员工表新插入的记录 EXECUTE emp_mgmt.fire_emp(8001); 执行结果: 雇员8001删除失败! -- 因为存在禁止删除的触发器,要执行drop trigger emp_test; PL/SQL 过程已成功完成。 删除触发器后,再次执行: EXECUTE emp_mgmt.fire_emp(8001); 执行结果

文档评论(0)

dart004 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档