Oracle 存储过程实例备忘

WBOY
풀어 주다: 2016-06-07 16:42:35
원래의
1065명이 탐색했습니다.

Oracle 存储过程实例备忘 统计报表:用户登录量(平台点击量)每月月初定时任务统计前一个月的登陆次数、登陆账号数、账号总数。

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;


 

本文永久更新链接地址:

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!