-- 1、用触发器来实现主键自动增长 -- 2、数据操作日志记录 emp。 create or replace trigger TRI_AUTO_HWL before insert on emp_hwl for each row declare -- local variables here v_addId number;-- 增长后的Id v_curtId number;-- 当前Id begin select max(e.empno) into v_curtId from emp_hwl e; if v_curtId is null then v_addId := 1; else v_addId := v_curtId + 1; end if; select v_addId into :new.empno from dual; dbms_output.put_line(v_curtId ||' ------------'); end TRI_AUTO_HWL; CREATE OR REPLACE TRIGGER TRI_EMP_INSERT_HWL BEFORE INSERT OR UPDATE OR DELETE --insert update delete 触发 ON emp_hwl FOR EACH ROW DECLARE BEGIN IF inserting THEN insert into EMP_LOG_HWL (autoId, addTime, oprate, tableName, EMPNO) values (SEQ_TEST.NEXTVAL, trunc(sysdate), 'insert', 'emp_hwl',:old.empno); ELSIF updating THEN insert into EMP_LOG_HWL (autoId, addTime, oprate, tableName, EMPNO) values (SEQ_TEST.NEXTVAL, trunc(sysdate), 'update', 'emp_hwl',:old.empno); ELSIF deleting THEN insert into EMP_LOG_HWL (autoId, addTime, oprate, tableName, EMPNO) values (SEQ_TEST.NEXTVAL, trunc(sysdate), 'delete', 'emp_hwl',:old.empno); END IF; END TRI_EMP_INSERT_HWL; -- 测试 insert into emp_hwl (ENAME, JOB,MGR,HIREDATE,SAL,COMM,DEPTNO) values ('汉斯','SALESMAN',7902,to_date('2014/5/30','yyyy/mm/dd'),5000,1000,10); delete emp_hwl e where e.ename = '汉斯';
注意:触发器中不能有事务控制语句(commit/callback/savepoint),因其不能保证事务的完整性,若加入自治事务则可以。只需PL/SQL的声明部分加PRAGMAAUTONOMOUS_TRANSACTION就可以了。
相关推荐
oracle触发器 练习,语句,应用,用法
一点关于oracle的练习题!较难~慢慢看吧!~受打击了别管我啊!!!!
oracle-触发器练习.pdf
第 9 章 触发器 9.1 触发器的种类和触发事件 9.2 DML 触发器 9.3 数据库事件触发器 9.4 DDL事件触发器 9.5 替代触发器 9.6 查看触发器 9.7 阶段训练 9.8 练习
数据库中的触发器,从简单到复杂,只需急着这些例子,从浅入深学习
oracle 存储过程的基本语法,关于oracle存储过程的若干问题备忘,oracle 存储过程语法总结及练习;oracle语法:Oracle触发器语法及实例基础知识(一)。
oracle 练习题
Oracle复习用脚本文件(相当全) 包括授权 查询 触发器 过程函数的调用
知识点一、触发器(trigger) 推荐练习文档: http://wenku.baidu.com/link?url=brtd9myO4XIaEjRPaRB0yWgV2_TfXmNxS6KKjB_avq7d0hPs3SknJdrs-JLtWe–H-f3q-I61HUxkcqqAFMC0z6Zf65QBbmFRB8TAlULmGS ...
练习概览:安装 Oracle 软件 2-21 3 创建 Oracle 数据库 课程目标 3-2 为数据库制定计划 3-3 数据库:示例 3-4 Database Configuration Assistant (DBCA) 3-5 使用 DBCA 创建数据库 3-6 口令管理 3-12 ...
Oracle 学习总结,包含从Oracle入门到触发器的学习,内含一些学习中的练习题及资源
Oracle数据库自带的几个触发器(最简单触发器格式)示例如下: -- create or replace trigger MDSYS.sdo_drop_user after drop on DATABASE declare stmt varchar2(200); BEGIN if dictionary_obj_type = 'USER...
PPT目录: 第一章 Oracle入门; 第二章 查询和SQL函数; 第三章 锁和表分区; 第四章 数据库对象; 第五章 Oracle 中的 OOP 概念;...第六章 PL/SQL 简介;...第九章 数据库触发器和内置程序包; 第十章 集合和成员函数。
·实践练习——演示如何应用在每章学到的关键技术 ·学习效果测试——对学习效果的快速自我评估 ·注意——与所介绍主题相关的额外信息 ·章节测验——每章结束时的测验测试读者对所学知识的掌握程度 作...
oracle进阶之plsql编程内容提要:通过对PL/SQL基础语法和存储函数、存储过程、包、触发器等数据库对象的概念及基本语法的学习与练习,达到学以致用的目的,并能在应用程序中调用存储函数及过程。
介绍了Oracle基础,sql基础,存储过程开发等
记住:欲速则不达,做任何事情要遵循他的规律,循序渐进,信心很重要 成为一个oracle高手过程:理解小知识点->做小练习->把小的只是点连成线->做oracle项目->形成只是面->深刻理解 Oracle基础部分:oracle基础使用; ...
本文是由笔者2012年学习oracle数据库时编写的学习札记,其中的题目 多数为老师留下的思考题目。 我相信本文会对初学者使用oracle有一个初步的使用印象。右图为我所参 考的书籍。 目录 第一讲 Oacle关系数据库 ...