Oracle实验6下触发器和包.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文档。上传文档
查看更多
Oracle实验6下触发器和包

《数据库开发技术》实验_6(下)__报告 实验题目:PL/SQL的触发器与包 日期 2015.12.6 班级 计算机1301 姓名 实验环境:win10+oracle 11g 实验内容与完成情况(记录所有的实验过程): 编写一个触发器,在DEPT表执行INSERT语句后被激发,此触发器将新部门的编号(deptno)、名称(dname)及执行此操作的用户(USER)、当时的日期(SYSDATE)插入N_DEPT表{注:此表已建好,表结构为N_DEPT(DEPTNO NUMBER(4),DNAME VARCHAR2(10), UNAME VARCHAR2(20), INDATE DATE)}。 代码: create table n_dept(deptno number(4),dname varchar2(10), uname varchar2(20),indate date); create or replace trigger del_emp after insert on dept for each row begin insert into n_dept values(:new.deptno,:new.dname,user,sysdate); end; insert into dept values(60,MMMM,hunan); 结果截图: 创建触发器CHECK_SAL,禁示对职务为CLERK的雇员的工资修改值超出1000至2000的范围,即CLERK职务员工的修改后工资值只能在1000~2000之间。要求测试该触发器。 步骤1:创建和编译触发器: 代码: Create or replace trigger check_sal Before update of sal On emp For each row Begin If (:new.sal1000 or :new.sal2000) and :old.job=CLERK then Raise_application_error(-20000,工资修改值超出1000至2000的范围,操作取消!); End if; End; 结果截图: 步骤2:在EMP表中修改记录,对触发器进行测试: 代码: Update emp set sal=800 where empno=7876; 结果截图: 编写一个管理雇员信息的包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:创建包头和包体: -- 包头部分 执行结果: 程序包已创建。 代码: create or replace package emp_mgmt is emp_count number(5); type emp_tax_record is record(empno emp.empno%type,ename emp.ename%type,salary emp.sal%type); cursor c_emp return emp_tax_record; sal_null exception; procedure init(p_tax number); function tax_emp(v_empno emp.empno%type)return number; procedure hire_emp(v_empno emp.empno%type,v_ename emp.ename%type,v_job emp.job%type,v_sal emp.sal%type); procedure fire_emp(v_empno

文档评论(0)

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

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

1亿VIP精品文档

相关文档