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;
  
时间: 2024-10-07 07:31:24

ORACLE 存储过程实例 [备忘录]的相关文章

oracle存储过程实例

oracle存储过程实例 分类: 数据(仓)库及处理 2010-05-03 17:15 1055人阅读 评论(2)收藏 举报 认识存储过程和函数 存储过程和函数也是一种PL/SQL块,是存入数据库的PL/SQL块.但存储过程和函数不同于已经介绍过的PL/SQL程序,我们通常把PL/SQL程序称为无名块,而存储过程和函数是以命名的方式存储于数据库中的.和PL/SQL程序相比,存储过程有非常多长处,详细归纳例如以下: * 存储过程和函数以命名的数据库对象形式存储于数据库其中.存储在数据库中的长处是非

Oracle 存储过程实例2

--创建存储过程 CREATE OR REPLACE PROCEDURE xxxxxxxxxxx_p ( --参数IN表示输入参数,OUT表示输入参数,类型可以使用任意Oracle中的合法类型. is_ym IN CHAR ) AS --定义变量 vs_msg VARCHAR2(4000); --错误信息变量 vs_ym_beg CHAR(6); --起始月份 vs_ym_end CHAR(6); --终止月份 vs_ym_sn_beg CHAR(6); --同期起始月份 vs_ym_sn_en

Oracle 存储过程实例集锦

一.如何创建存储过程procedure 1.创建一个存储过程用于保存已上架商品的数量 CREATE ORREPLACE PROCEDURE getGoodCount IS goodCount int; BEGIN SELECT COUNT(*)INTO goodCount FROMtable_good where status = '3'; DBMS_OUTPUT.PUT_LINE('good表共有'||goodCount||'笔上架商品'); END getGoodCount; call ge

oracle存储过程的例子

oracle存储过程的例子 分类: 数据(仓)库及处理 2010-05-03 17:15 1055人阅读 评论(2)收藏 举报 认识存储过程和函数 存储过程和函数也是一种PL/SQL块,是存入数据库的PL/SQL块.但存储过程和函数不同于已经介绍过的PL/SQL程序,我们通常把PL/SQL程序称为无名块.而存储过程和函数是以命名的方式存储于数据库中的.和PL/SQL程序相比.存储过程有非常多长处.详细归纳例如以下: * 存储过程和函数以命名的数据库对象形式存储于数据库其中.存储在数据库中的长处是

oracle存储过程加密

引言:平时大家在做项目的时候,经常会遇到把Oracle存储过程带到项目现场来测试系统.这时如果想对自己的存储过程进行保密,不使别人看到源代码,就可以对已有的存储过程进行加密保护.顾名思义,就是对Oracle存储过程源码的加密.当然不是什么时候都需要的,当有的项目对安全性要求比较高的时候可以采用,下面我就用案例来介绍这种加密方式和实验结果. 实验环境 操作系统版本 Red Hat Enterprise Linux Server release 6.5 (Santiago) 数据库版本 Oracle

Oracle存储过程基本语法介绍

Oracle存储过程基本语法 存储过程 1 CREATE OR REPLACE PROCEDURE 存储过程名 2 IS 3 BEGIN 4 NULL; 5 END; 行1: CREATE OR REPLACE PROCEDURE 是一个SQL语句通知Oracle数据库去创建一个叫做skeleton存储过程, 如果存在就覆盖它; 行2: IS关键词表明后面将跟随一个PL/SQL体. 行3: BEGIN关键词表明PL/SQL体的开始. 行4: NULL PL/SQL语句表明什么事都不做,这句不能删

Oracle 存储过程加密之wrap工具

<Oracle 存储过程加密之wrap工具> 定场诗 道德三皇五帝,功名夏侯商周,五霸七雄闹春秋,顷刻兴亡过手, 青石几行名姓,北邙无数荒丘,前人播种后人收,说甚龙争虎斗. 引言:平时大家在做项目的时候,经常会遇到把Oracle存储过程带到项目现场来测试系统.这时如果想对自己的存储过程进行保密,不使别人看到源代码,就可以对已有的存储过程进行加密保护.顾名思义,就是对Oracle存储过程源码的加密.当然不是什么时候都需要的,当有的项目对安全性要求比较高的时候可以采用,下面我就用案例来介绍这种加密

Oracle存储过程基本语法 存储过程

Oracle存储过程基本语法 存储过程 1 CREATE OR REPLACE PROCEDURE 存储过程名 2 IS 3 BEGIN 4 NULL; 5 END; 行1: CREATE OR REPLACE PROCEDURE 是一个SQL语句通知Oracle数据库去创建一个叫做skeleton存储过程, 如果存在就覆盖它; 行2: IS关键词表明后面将跟随一个PL/SQL体. 行3: BEGIN关键词表明PL/SQL体的开始. 行4: NULL PL/SQL语句表明什么事都不做,这句不能删

Oracle 存储过程学习笔记

1.存储过程简单实例 CREATE OR REPLACE PROCEDURE 存储过程名称 (参数in,参数out) AS -- 变量声明,每个声明用分号结束.可以在声明的同时初始化 name varchar2(50); age number(8) default 0; --开始逻辑运算 BEGIN --业务逻辑 END 2.游标实现方式. --显式实现方式(可以实现多值) cursor cursorVar is select event_id, isagain, rate from call_