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;