oracle触发器的设计及应用.docx

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验六 Oracle 触发器的设计及应用 实验目的: 触发器是特定事件出现的时候,自动执行的代码块。类似于存储过程,触发 器与存储过程的区别在于:存储过程是由用户或应用程序显式调用的 ,而触发器 是不能被直接调用的。 触发器具有这些功能: 1、允许 /限制对表的修改; 2、自动生成派生列,比 如自增字段; 3、强制数据一致性; 4、提供审计和日志记录; 5、防止无效的事 务处理; 6、启用复杂的业务逻辑。 本次实验了解 Oracle 触发器的创建、修改和删除的方法和步骤,掌握在 Oracle SQL Developer 中对触发器的进行创建、修改和删除,掌握触发器触发 测试的方法。 实验步骤: 1.创建触发器 audit_employee_copy ,该触发器对修改 Employees_copy 表 的时间、用户名记录到日志表中。 运行 SQL Developer ,用自己的学号和密码建立 Connections ,并连接到 Oracle 数据库上,打开 SQL worksheets ,按顺序运行以下语句,运行时请点击 (Run Script) 按钮。 (1). 输入如下语句,建立试验表,如图 6-1所示: create table employees_copy as select * from employees; 工作表 弯询构建器 cre-ate table emplo7ees_copv as select t^an 包皿口丄oyeeg; : SaWfii岀 * X H L2 任黑已完嵐用时0. 165秒 table EMPLOYTE5_COPT 已创崖。 (2).输入如下语句,建立日志表,并查看日志表是否为空,如图 6-2所示: create table employees_log( who varchar2(30), whe n date); select * from employees_log; A£l朝齒凤加居趣圈oi俯秒 n?f>* 查询枸建器 create tal>le employees_l<?g( 血o varckar2(30^, vriien date); select 吉 frcniL employe e s_ 1 og; I .] - 凰脚本输出工 W 0日j旦眉丄任劳己兀庇用时山询秒 calle EMFL^TES_COF?已创越。 taLle EMFL0YEE5_L0G 已创韋① 未选择任何行 " 我们看至V,现在的 employees_log 表中没有记录,0 rows selected。 (3).输入如下语句,在employees_copy表上建立语句触发器,在触发器中 将时间、用户记录到employees_log表中。如图6-3所示: Create or replace trigger audit_employee_copy Before in sert or update or delete On employees_copy Beg in Insert into employees」og(Who,when) Values(user, sysdate); End; 1 [ [>m?a苗耳 a 遂电!z切 「偌秋 :HE夷 沓河构建爭 Q Create or ret>lace trigger aud i t_ emp 1 eye e_c opy Before insert- or upefta-te or delete On emp1oye e s_c opy Begin Insert into umpLoyeH呂 log (血o/triwn) Value? (vsei;/ ; End; 输出z < h s 0 i任势已呢成「用时o.斶秒 table EHPLOYEES_COPY 已创崖* tfible EMPLOTEES_LOG-已创逢宀 未迭搔任何行 " TRIGGER audi c_eini)10¥ee_copy 已漏译 (4).输入如下语句对触发器进行UPDATE触发测试,如图6-4所示: 对employees_copy表做一个update操作,并提交(commit)到数据库: update employees_copy set salary = salary*1.1; commit; ⑦起始肉掘I绘.■谑" AKIJS趣遵 廖③ 遹4S0&1 coca 工作表 查谊构建器 iQidate employees_copy set salary = salaxy^l■丄; cmrvnit ; i i |圍Bt輸出* N & 日昌同 任务旦宪就^BO.匹砂 tahle euflotees^cofy 已创蚩 f table EMPL0YEE3_L0G 已创建& 未选择任何行 TRIGG

文档评论(0)

dajiede + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档