zoukankan      html  css  js  c++  java
  • Oracle触发器简单入门记录

    写在前面:

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

    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;

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

        

  • 相关阅读:
    Leetcode 242.有效的字母异位词 By Python
    Leetcode 344.反转字符串 By Python
    Leetcode 217.存在重复元素 By Python
    js 动态加载select触发事件
    MUI 里js动态添加数字输入框后,增加、减少按钮无效
    【 jquery 】常用
    MySql 常用语句
    CSS 选择器 知识点
    HTML 符号实体
    log4net 配置
  • 原文地址:https://www.cnblogs.com/eleven258/p/8940490.html
Copyright © 2011-2022 走看看