写在前面:

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

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. CentOS vim中backspace不能用,出现^?的解决方法

    查看在VI配置器下面使用backspace删除时提示输出那个字符例如:^H.^?.^a等字符如果输出的是:^? 字符 则使用以下命令:[oracle@junyii~]$ stty erase ^? 再 ...

  2. Day4 自定义控件/ListView/RecyclerView

    创建自定义控件 引入布局 在新增的title.xml中创建一个自定义的标题栏: <LinearLayout xmlns:android="http://schemas.android. ...

  3. Could not automatically select an Xcode project. Specify one in your Podfile like so

    需要将Podfile文件放置在根目录下,而不能放置在项目的里面. 更改路径即可

  4. iOS runLoop 理解

    目录 概述 run loop modes 一.概述 run loop叫事件处理循环,就是循环地接受各种各样的事件.run loop是oc用来管理线程里异步事件的工具.一个线程通过run loop可以监 ...

  5. 【bzoj4325】NOIP2015 斗地主(&“加强”版) 搜索

    题目描述 牛牛最近迷上了一种叫斗地主的扑克游戏.斗地主是一种使用黑桃.红心.梅花.方片的A到K加上大小王的共54张牌来进行的扑克牌游戏.在斗地主中,牌的大小关系根据牌的数码表示如下:3<4< ...

  6. P1270 “访问”美术馆

    题目描述 经过数月的精心准备,Peer Brelstet,一个出了名的盗画者,准备开始他的下一个行动.艺术馆的结构,每条走廊要么分叉为两条走廊,要么通向一个展览室.Peer知道每个展室里藏画的数量,并 ...

  7. 《c程序设计语言》读书笔记-3.6-数字转字符串最小宽度限制

    #include <io.h> #include <stdio.h> #include <string.h> #include <stdlib.h> # ...

  8. HDU 5690 矩阵快速幂

    All X Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submi ...

  9. 模拟Windows系统“回收站”

    HTML: <!DOCTYPE html><html> <head> <meta http-equiv="content-type" co ...

  10. 汕头市队赛 SRM10 T1模拟只会猜题意

    模拟只会猜题意 SRM 10 描述 有一本n个单词的词典,求按下列方法能造出的不相同的词汇数目.  1.词典中的单词是一个词. 2.能分为两部分的,其中前一部分是一个词典词或者其非空前缀,后一部分是一 ...