存储过程例子
来源:互联网 发布:全球经济数据库 市盈率 编辑:程序博客网 时间:2024/06/08 14:18
create or replace procedure day_street_kh
is
yesterday varchar2(30);
maxTime varchar2(30);
myCusor SYS_REFCURSOR;
begin
--参数赋值
select to_char(sysdate - 1, 'yyyy-MM-dd') into yesterday from dual;
dbms_output.put_line(yesterday);
select max(t.ymtime) into maxTime from cr_exam_day_stats_bak t ;
dbms_output.put_line(maxTime);
--插入前删除cr_exam_day_stats 所有数据,
delete from cr_exam_day_stats t where t.typekind='1';
-- 删除存在的同一天数据
if(yesterday=maxTime)then
delete from cr_exam_day_stats_bak t where t.ymtime=yesterday and t.typekind='1';
end if;
--游标赋值
for myCusor in (
select
RAWTOHEX(SYS_GUID()) ID,
'' commname,
nvl(b.ymtime,yesterday)ymtime,
nvl(b.loginnum, 0) loginnum,
nvl(b.updatenum, 0) updatenum,
nvl(b.slnum, 0) slnum,
nvl(b.cznum, 0) cznum,
nvl(b.wxuserNum, 0) wxuserNum,
nvl(b.userNum, 0) userNum,
nvl(b.wxUpdateNum, 0) wxUpdateNum,
'' commno,
a.streetname,
1 typekind,
0 orgnum,
0 sernum
from (select distinct t.streetname, t.streetno from SDE.COMMR t) a
left join
(select t.streetname,
t.ymtime,
sum(t.loginnum) loginnum,
sum(t.updatenum) updatenum,
sum(t.slnum) slnum,
sum(t.cznum) cznum,
sum(t.wxuserNum) wxuserNum,
sum(t.userNum) userNum,
sum(t.wxUpdateNum) wxUpdateNum
from cr_exam_day_stats t where t.ymtime=yesterday
group by t.streetname, t.ymtime) b
on a.streetname = b.streetname
)
--插入数据
loop
insert into cr_exam_day_stats
(id,
commname,
ymtime,
loginnum,
updatenum,
slnum,
cznum,
wxusernum,
usernum,
wxupdatenum,
commno,
streetname,
typekind,
orgnum,
sernum)
values
(myCusor.id,
myCusor.commname,
myCusor.ymtime,
myCusor.loginnum,
myCusor.updatenum,
myCusor.slnum,
myCusor.cznum,
myCusor.wxusernum,
myCusor.usernum,
myCusor.wxupdatenum,
myCusor.commno,
myCusor.streetname,
myCusor.typekind,
myCusor.orgnum,
myCusor.sernum);
--插入到数据备份表
insert into cr_exam_day_stats_bak
(id,
commname,
ymtime,
loginnum,
updatenum,
slnum,
cznum,
wxusernum,
usernum,
wxupdatenum,
commno,
streetname,
typekind,
orgnum,
sernum)
values
(myCusor.id,
myCusor.commname,
myCusor.ymtime,
myCusor.loginnum,
myCusor.updatenum,
myCusor.slnum,
myCusor.cznum,
myCusor.wxusernum,
myCusor.usernum,
myCusor.wxupdatenum,
myCusor.commno,
myCusor.streetname,
myCusor.typekind,
myCusor.orgnum,
myCusor.sernum);
end loop;
commit;
end day_street_kh;
is
yesterday varchar2(30);
maxTime varchar2(30);
myCusor SYS_REFCURSOR;
begin
--参数赋值
select to_char(sysdate - 1, 'yyyy-MM-dd') into yesterday from dual;
dbms_output.put_line(yesterday);
select max(t.ymtime) into maxTime from cr_exam_day_stats_bak t ;
dbms_output.put_line(maxTime);
--插入前删除cr_exam_day_stats 所有数据,
delete from cr_exam_day_stats t where t.typekind='1';
-- 删除存在的同一天数据
if(yesterday=maxTime)then
delete from cr_exam_day_stats_bak t where t.ymtime=yesterday and t.typekind='1';
end if;
--游标赋值
for myCusor in (
select
RAWTOHEX(SYS_GUID()) ID,
'' commname,
nvl(b.ymtime,yesterday)ymtime,
nvl(b.loginnum, 0) loginnum,
nvl(b.updatenum, 0) updatenum,
nvl(b.slnum, 0) slnum,
nvl(b.cznum, 0) cznum,
nvl(b.wxuserNum, 0) wxuserNum,
nvl(b.userNum, 0) userNum,
nvl(b.wxUpdateNum, 0) wxUpdateNum,
'' commno,
a.streetname,
1 typekind,
0 orgnum,
0 sernum
from (select distinct t.streetname, t.streetno from SDE.COMMR t) a
left join
(select t.streetname,
t.ymtime,
sum(t.loginnum) loginnum,
sum(t.updatenum) updatenum,
sum(t.slnum) slnum,
sum(t.cznum) cznum,
sum(t.wxuserNum) wxuserNum,
sum(t.userNum) userNum,
sum(t.wxUpdateNum) wxUpdateNum
from cr_exam_day_stats t where t.ymtime=yesterday
group by t.streetname, t.ymtime) b
on a.streetname = b.streetname
)
--插入数据
loop
insert into cr_exam_day_stats
(id,
commname,
ymtime,
loginnum,
updatenum,
slnum,
cznum,
wxusernum,
usernum,
wxupdatenum,
commno,
streetname,
typekind,
orgnum,
sernum)
values
(myCusor.id,
myCusor.commname,
myCusor.ymtime,
myCusor.loginnum,
myCusor.updatenum,
myCusor.slnum,
myCusor.cznum,
myCusor.wxusernum,
myCusor.usernum,
myCusor.wxupdatenum,
myCusor.commno,
myCusor.streetname,
myCusor.typekind,
myCusor.orgnum,
myCusor.sernum);
--插入到数据备份表
insert into cr_exam_day_stats_bak
(id,
commname,
ymtime,
loginnum,
updatenum,
slnum,
cznum,
wxusernum,
usernum,
wxupdatenum,
commno,
streetname,
typekind,
orgnum,
sernum)
values
(myCusor.id,
myCusor.commname,
myCusor.ymtime,
myCusor.loginnum,
myCusor.updatenum,
myCusor.slnum,
myCusor.cznum,
myCusor.wxusernum,
myCusor.usernum,
myCusor.wxupdatenum,
myCusor.commno,
myCusor.streetname,
myCusor.typekind,
myCusor.orgnum,
myCusor.sernum);
end loop;
commit;
end day_street_kh;
0 0
- 存储过程例子DIY
- 存储过程菜鸟例子
- 存储过程例子
- 存储过程 例子
- sqlserver 存储过程例子
- 存储过程例子
- 存储过程菜鸟例子
- 存储过程例子
- 经典存储过程例子
- oracle 存储过程例子
- 存储过程的例子.
- MySQL 存储过程例子
- 存储过程例子
- ORACLE存储过程例子
- 存储过程简单例子
- sql存储过程例子
- mysql存储过程例子
- 存储过程例子
- 【CRM】01- WEB UI 下拉列表
- IIC协议
- Unity 3D
- WindowManager.LayoutParams详解总结和对应实例
- 哈密顿图 poj 1776
- 存储过程例子
- java缓存技术
- java-final关键字
- Linux C 读取文件夹下所有文件(包括子文件夹)的文件名(转载)
- 多条件查询--使用dapper命令参数动态拼接出最安全的sql语句
- 前端代码书写规范
- hdu 2047简单递推公式
- 钓鱼比赛
- 结构型模式之适配器模式(Adapter)