ORACLE 存储过程实例 [备忘录]


统计报表:用户登录量(平台点击量)每月月初定时任务统计前一个月的登陆次数、登陆账号数、账号总数。


使用存储过程把查询的值存储到表 RP_MONTH_CLICK 中。


create or replace procedure update_RP_MONTH_CLICK  as
  --定义变量
  date_v varchar(6);                --年月              
  login_count_v INTEGER;            --登录次数
  login_accoun_count_v INTEGER;     --登录账号数            
  accoun_count_v INTEGER;           --账号总数
  begin
  /* ------------------ 获取参数 用into关键字赋值给变量 start--------------------- */  
       --年月
       select case WHEN to_char(sysdate-1,'YYYYMM')=to_char(sysdate,'YYYYMM') THEN to_char(sysdate,'YYYYMM') 
       else to_char(sysdate-1,'YYYYMM') end into date_v from dual ;
        --登录次数
       select count(t.log_id) into login_count_v from SC_ACT_LOG t where t.act_type = 5
       and TO_DATE(TO_CHAR(t.act_time, 'YYYYMM'), 'YYYYMM') = TO_DATE(TO_CHAR(SYSDATE, 'YYYYMM'), 'YYYYMM');
       
       --登录账号数
       select  count(staff_id) into login_accoun_count_v from (
          select t.staff_id from SC_ACT_LOG t where t.act_type = 5
          and TO_DATE(TO_CHAR(t.act_time, 'YYYYMM'), 'YYYYMM') = TO_DATE(TO_CHAR(SYSDATE, 'YYYYMM'), 'YYYYMM')
          group by t.staff_id
        );
       -- 账号总数
     select count(t.staff_id) into accoun_count_v from HRM_STAFF t where t.status = 1 ;
  /* ------------------ 获取参数 end--------------------- */    
   --先删除
   delete from RP_MONTH_CLICK where RMONTH = date_v ;
   --再添加
   insert into RP_MONTH_CLICK ( ID, RMONTH,LOGIN_COUNT,LOGIN_ACCOUNT_COUNT,ACCOUNT_COUNT )
   values( SEQ_SC_GLOBAL_PARAMETERS.NEXTVAL,date_v,login_count_v,login_accoun_count_v,accoun_count_v);         
  commit;
  end;
  



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值