写在前面:

  最近,老项目新增了日报优化的需求,丽姐让我用触发器去实现当数据插入或者更新的时候,实现对日报表数据更新操作。嗯嗯嗯呢,之前学习数据库的时候,有碰到过触发器,但都是一跳而过,也没怎么去真正的实践,这次就权当再次去学习吧~~

1.触发器实例:

--创建触发器
create or replace trigger test_trigger2
--触发器是在insert或update动作之后执行的
after insert or update
--作用于dms.kqm_leaveapply表的每一行
on dms.kqm_leaveapply
--这里默认为new ,old 怕与其他变量有冲突,则做了修改
referencing new as new_val old as old_val
for each row
--触发器限制条件
when (new_val.statusname = '核准')
--触发器描述语句中,新数据使用new_val进行引用,在下面的操作语句中,新数据使用:new_val进行引用 declare --声明变量
st_str varchar2(100);
et_str varchar2(100); time1 number;
time2 number;
......
begin
...... --查询结果集,进行遍历 for daylist in (
--查询出指定时间段内的所有日期
select to_char(:new_val.startdate+rownum-1,'yyyymmdd') as dd
from dual
connect by rownum <=
trunc(:new_val.enddate - :new_val.startdate)+1
)
loop --写要进行操作的逻辑
......
--更新另外一张表的数据
update dms.d_dailyreport_t d set d.shours = (8 - ItemValue)
where d.personcode = :new_val.workno and to_char(d.ftime,'yyyy/mm/dd') like to_char(daylist.dd,'yyyy/mm/dd') ; end loop; --substr()数据截取
st_str :=substr(:new_val.starttime,1,2) || substr(:new_val.starttime,4,2) ;
et_str := substr(:new_val.endtime,1,2) || substr(:new_val.endtime,4,2) ;
time1 := to_number(st_str);
time2 := to_number(et_str); if(Item_m<0) then
Item_m := Item_m *(-1);
tHour := tHour -1;
end if; end test_trigger2;

  上面的触发器例子,只是一个框架,并不能执行,这里只做简单的记录,网上的例子有很多,稍微看一下就能简单入门了,这里就不多做记录与说明了~~

    

Oracle触发器简单入门记录的更多相关文章

  1. Oracle触发器简单使用记录

    在ORACLE系统里,触发器类似函数和过程.1.触发器类型:(一般为:语句级触发器和行级触发器.) 1).DML触发器: 创建在表上,由DML事件引发 2).instead of触发器: 创建在视图上 ...

  2. Java中关于LockSupport的简单入门记录

    LockSupport的JDK的文档描述:Basic thread blocking primitives for creating locks and other synchronization c ...

  3. Oracle——存储过程简单入门实例

    1.连接plsql developer,打开一个SQL Window 2.SQL Window中创建表user_info -- Create table create table USER_INFO ...

  4. 【oracle】触发器简单实现

    目标:实现实时备份uertest表数据至usertest_temp中,两表结构一致 解决:用oracle触发器实现同步 结果: 1.建表 -- 简单的用户表 create table USERTEST ...

  5. (转)oracle触发器使用:after insert 与before insert的简单使用注意

    本文转载自:http://blog.csdn.net/kuangfengbuyi/article/details/41446125 创建触发器时,触发器类型为after insert , 在begin ...

  6. Oracle PL/SQL入门之慨述

    Oracle PL/SQL入门之慨述 一.PL/SQL出现的目的 结构化查询语言(Structured Query Language,简称SQL)是用来访问关系型数据库一种通用语言,它属于第四代语言( ...

  7. [原创]MYSQL的简单入门

    MYSQL简单入门: 查询库名称:show databases; information_schema mysql test 2:创建库 create database 库名 DEFAULT CHAR ...

  8. oracle触发器加条件判断

    oracle触发器加条件判断,如果某个字段,isnode=0,那么不执行下面的方法,数据如下: create or replace trigger tr_basestation_insert_emp ...

  9. Oracle 触发器在日志管理开发中的应用

    摘要: 本文讨论了利用数据库中的触发器对日志管理进行设计与实现的方法, 是对原来在客户端软件中编写日志管理方法的一种改进, 并给出了 Oracle9i 中的实例演示.关键词: Oracle; 触发器; ...

随机推荐

  1. 重现ssd遇到的问题

    首先是create_list.sh和create_data.sh中的data_dir的路径得修改. 然后是在create_data.sh文件调用$caffe_root下的scripts目录中的crea ...

  2. 团队项目-第四次Scrum 会议

    时间:10.26 时长:30分钟 地点:线上 工作情况 团队成员 已完成任务 待完成任务 解小锐 编写project和projectGenerator类 编写下一步的规格说明 陈鑫 采用creator ...

  3. 错误error: Exception at 0x613baa14, code: 0xc0000005: read access violation at: 0x0, flags=0x0 (first chance)的解决办法

    一.错误原因 出现这个错误的原因多半是由于指针出现错误,即出现了空指针,也有说是变量没有初始化,笔者碰到的情况是发生了内存溢出. 二.定位方法 一般这种问题直接导致程序崩溃,直接调试,就能找到对应的问 ...

  4. select chosen 禁用下拉框某一个option

    $("#tbParBudCode option[value='" + budCodeId + "']").attr("disabled", ...

  5. js 回车触发点击事件

    $(document).keyup(function(event){ if(event.keyCode ==13){ $("#submit").trigger("clic ...

  6. vue & lifecycle methods & this bug & ES6 Arrow function & this bind bug

    vue & lifecycle methods & this bug ES6 Arrow function & this bind bug bad fetchTableData ...

  7. hdu 3499 Flight (最短路径)

    Flight Time Limit: 20000/10000 MS (Java/Others)    Memory Limit: 65535/65535 K (Java/Others)Total Su ...

  8. Hadoop入门(五) Hadoop2.7.5集群分布式环境搭建

    本文接上文内容继续: server01 192.168.8.118 jdk.www.fengshen157.com/ hadoop NameNode.DFSZKFailoverController(z ...

  9. SPOJ 1825 Free Tour | 终极之树分治

    求树上最长路径使得经过的拥挤节点个数不超过K //欢迎访问这个博客!http://www.cnblogs.com/luyouqi233/p/8036828.html #include<cstdi ...

  10. 用CSS模拟魔兽世界技能冷却的效果

    效果演示   上面的效果看起来还不错吧.在网页里,除了用Flash,我们还是有不少方法可以实现它. 显然这种效果不复杂,一张背景图片,加上前面带有透明度的多边形图层,在脚本控制下就可以转起来了.但问题 ...