




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第二十二部分 oracle11g的触发器 王二暖王二暖 Oracle11g 教室教室 TelQQ:19727663 目标q理解oracle11g中的触发器的种类q掌握oracle11g中使用触发器实现复杂完整性的方法q理解SqlServer和oracle11g的触发器语法上的差异q掌握oracle11g中的INSTEAD OF触发器的建立方法q掌握oracle11g中的特殊类型触发器的建立方法,即:模式触发器、数据库启动关闭触发器、用户登录退出触发器 王二暖王二暖 Oracle11g 教室教室 TelQQ:19727663 触发器q触发器是当
2、特定事件出现时自动执行的存储过程q特定事件可以是执行更新的DML语句和DDL语句q触发器不能被显式调用q触发器的功能:q自动生成数据q自定义复杂的安全权限q提供审计和日志记录q启用复杂的业务逻辑 王二暖王二暖 Oracle11g 教室教室 TelQQ:19727663 oracle11g创建触发器的语法CREATE OR REPLACE TRIGGER trigger_nameAFTER | BEFORE | INSTEAD OFINSERT OR UPDATE OF column_list OR DELETEON table_or_view_nameREFERENC
3、ING OLD AS old / NEW AS newFOR EACH ROWWHEN (condition)pl/sql_block; 王二暖王二暖 Oracle11g 教室教室 TelQQ:19727663 触发器的组成部分 3-1触发器由三部分组成:触发器语句(事件)定义激活触发器的 DML 事件和 DDL 事件触发器限制执行触发器的条件,该条件必须为真才能激活触发器触发器操作(主体)包含一些 SQL 语句和代码,它们在发出了触发器语句且触发限制的值为真时运行 王二暖王二暖 Oracle11g 教室教室 TelQQ:19727663 触
4、发器的组成部分 3-2 SQL CREATE OR REPLACE TRIGGER trig_salAFTER UPDATE OF empsal ON salary_records触发器语句为 salary_records 表创建 trig-sal 触发器在更新 emp_sal 列之后激活触发器触发器限制SQL FOR EACH ROWWHEN (NEW.empsalOLD.empsal)DECLARESal_diff NUMBER;只有在WHEN子句中的条件得到满足时,才激活trig_sal 触发器触发器操作SQL BEGIN sal_diff:=:NEW.empsal-:OLD.empsa
5、l; DBMS_OUTPUT.PUT_LINE(工资差额:sal_diff);END;如果WHEN子句中的条件得到满足,将执行BEGIN 块中的代码 王二暖王二暖 Oracle11g 教室教室 TelQQ:19727663 AFTER和BEFORE触发器Oracle 数据库更新表表保存更新激活触发器触发器AFTER 触发器的工作原理BEFORE 触发器的工作原理更新表表激活触发器触发器保存更新Oracle 数据库 王二暖王二暖 Oracle11g 教室教室 TelQQ:19727663 创建触发器CREATE OR REPLACE TRIGG
6、ER aiu_itemfileAFTER INSERTON itemfileFOR EACH ROWBEGIN IF (:NEW.qty_hand = 0) THEN DBMS_OUTPUT.PUT_LINE(警告:已插入记录,但数量为零); ELSE DBMS_OUTPUT.PUT_LINE(已插入记录); END IF;END;/ 王二暖王二暖 Oracle11g 教室教室 TelQQ:19727663 Oracle11g的触发器类型1q触发器的类型有:触发器类型模式(DDL)触发器DML触发器数据库级触发器语句级触发器行级触发器INSTEAD OF触发器 王二暖
7、王二暖 Oracle11g 教室教室 TelQQ:19727663 Oracle11g的触发器类型2q DDL 触发器q 数据库级触发器q DML 触发器q 语句级触发器q 行级触发器q INSTEAD OF 触发器在模式中执行 DDL 语句时执行在发生打开、关闭、登录和退出数据库等系统事件时执行在对表或视图执行DML语句时执行无论受影响的行数是多少,都只执行一次对DML语句修改的每个行执行一次用于用户不能直接使用 DML 语句修改的视图 王二暖王二暖 Oracle11g 教室教室 TelQQ:19727663 Oracle11g的触发器类型
8、3 行级触发器:有for each row语句,在begin代码段中可以使用:new和:old。 王二暖王二暖 Oracle11g 教室教室 TelQQ:19727663 Oracle11g的触发器类型4 语句级触发器:没有有for each row语句,在begin代码段中不可以使用:new和:old。 王二暖王二暖 Oracle11g 教室教室 TelQQ:19727663 Oracle11g的触发器类型5SQL CREATE OR REPLACE TRIGGER upd_ord_view INSTEAD OF UPDATE ON ord
9、_view FOR EACH ROW BEGIN UPDATE order_master SET vencode=:NEW.vencode WHERE orderno = :NEW.orderno;DBMS_OUTPUT.PUT_LINE(已激活触发器); END; /qINSTEAD OF 触发器 王二暖王二暖 Oracle11g 教室教室 TelQQ:19727663 Oracle11g的触发器类型6模式触发器CREATE TABLE dropped_obj (obj_name VARCHAR2(30), obj_type VARCHAR2(20), drop_d
10、ate DATE); CREATE OR REPLACE TRIGGER log_drop_objAFTER DROP ON SCHEMABEGIN INSERT INTO dropped_obj VALUES( ORA_DICT_OBJ_NAME, ORA_DICT_OBJ_TYPE, SYSDATE);END; 王二暖王二暖 Oracle11g 教室教室 TelQQ:19727663 常用系统变量Ora_client_ip_address 返回客户端的ip地址Ora_database_name 返回当前数据库名Ora_login_user 返回登录用户名Ora_d
11、ict_obj_name 返回ddl操作所对应的数据库对象名 Ora_dict_obj_type 返回ddl操作所对应的数据库对象的类型 王二暖王二暖 Oracle11g 教室教室 TelQQ:19727663 Oracle11g的触发器类型7数据库启动触发器create table event_table ( event varchar2(30), time date);create or replace trigger tr_startupafter startup on databasebegin insert into event_table values(
12、ora_sysevent, sysdate);end; 王二暖王二暖 Oracle11g 教室教室 TelQQ:19727663 Oracle11g的触发器类型8用户登陆触发器create table log_table(username varchar2(20), logon_time date, logoff_time date, address varchar2(20);create or replace trigger tr_logonafter logon on databasebegin insert into log_table(username,log
13、on_time, address ) values(ora_login_user, sysdate, ora_client_ip_address);end; 王二暖王二暖 Oracle11g 教室教室 TelQQ:19727663 q启用和禁用触发器q删除触发器启用、禁用和删除触发器SQL ALTER TRIGGER aiu_itemfile DISABLE;SQL ALTER TRIGGER aiu_itemfile ENABLE;SQL DROP TRIGGER aiu_itemfile; 王二暖王二暖 Oracle11g 教室教室 TelQQ:19727663 查看有关触发
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 林木遗传育种与经济效益分析考核试卷
- 数字智慧方案5486丨如何高效构建智慧零售系统
- 肉类产品安全追溯体系构建与实施考核试卷
- 聚丙烯酸甲酯纤维染色考核试卷
- 建筑幕垟安全施工方案
- 《销售渠道策略》课件
- 2025年二级造价工程师之建设工程造价管理基础知识能力测试试卷B卷附答案
- 2025年教师资格之小学教育学教育心理学强化训练试卷B卷附答案
- 《空调技术与设备》课件
- 双减初中物理教学设计
- 2024年贵州省德江县事业单位公开招聘医疗卫生岗笔试题带答案
- 高考二轮专题复习:图文转换
- 2024年甘肃省大数据中心招聘工作人员笔试真题
- 崇左市人民检察院招聘机关文员笔试真题2024
- (二模)2025年4月潍坊市高三高考模拟考试地理试卷(含答案)
- 香港劳务服务合同协议
- GB/T 9065.2-2025液压传动连接软管接头第2部分:24°锥形
- 高二下学期感恩母亲节主题班会课件
- 高一信息技术Python编程课程讲解
- 医院行政测试题及答案
- 雨水排放检测管理制度
评论
0/150
提交评论