文档章节

oracle存储过程

开源中国-总书记
 开源中国-总书记
发布于 2016/07/15 15:39
字数 249
阅读 10
收藏 0

CREATE OR REPLACE 
PROCEDURE P_REPOST_WEEK_QF (STARTDATE in varchar2)IS
                FIRSTDAYDATE  DATE;
                LASTDAYDATE  DATE; 
                MONDAY DATE; 
                SUNDAY DATE; 
                STARTHALF DATE;
                ENDHALF   DATE;
                MAXDATE DATE;
                I INTEGER;
                J INTEGER;
                YEAR INTEGER;
BEGIN
            SELECT TO_DATE(STARTDATE,'yyyyMMdd') INTO FIRSTDAYDATE FROM DUAL;
            SELECT LAST_DAY(ADD_MONTHS(FIRSTDAYDATE,11)) INTO LASTDAYDATE FROM DUAL;
            MONDAY:=FIRSTDAYDATE;
      MAXDATE:=MONDAY;
            SELECT TRUNC(MONDAY,'iw') INTO SUNDAY FROM DUAL;    
            SELECT substr(STARTDATE, 0, 4) INTO YEAR FROM DUAL;
            I:=1;
            J:=1;
            WHILE (MAXDATE <= LASTDAYDATE) LOOP
                    SELECT TRUNC(SUNDAY,'iw')+6 INTO MONDAY FROM DUAL;
                    SELECT TRUNC(MONDAY,'iw')+6 INTO MAXDATE FROM DUAL;
                    SELECT TRUNC(SUNDAY,'iw')+2 INTO ENDHALF FROM DUAL;
                    SELECT TRUNC(SUNDAY,'iw')+3 INTO STARTHALF FROM DUAL;
                    IF MAXDATE>LASTDAYDATE 
                         THEN
                             return;
                    END IF;
                    INSERT INTO REPORT_WEEK_HALF(WD_YEAR,WD_NATURAL_WEEK,WD_START_DATE,WD_END_DATE)VALUES
                    (YEAR,J,to_char(SUNDAY,'yyyyMMdd'),to_char(ENDHALF,'yyyyMMdd'));

                    J:=J+1;
                    INSERT INTO REPORT_WEEK_HALF(WD_YEAR,WD_NATURAL_WEEK,WD_START_DATE,WD_END_DATE)VALUES
                    (YEAR,J,to_char(STARTHALF,'yyyyMMdd'),to_char(MONDAY,'yyyyMMdd'));

                    INSERT INTO REPORT_WEEK_ALL(WD_YEAR,WD_NATURAL_WEEK,WD_START_DATE,WD_END_DATE)VALUES 
                    (YEAR,I,to_char(SUNDAY,'yyyyMMdd'),to_char(MONDAY,'yyyyMMdd'));    
                    
                    SELECT TRUNC(SUNDAY,'iw')+7 INTO SUNDAY FROM DUAL;
                    I:=I+1;
                    J:=J+1;
                END LOOP;
                COMMIT;
END P_REPOST_WEEK_QF;
 

© 著作权归作者所有

共有 人打赏支持
开源中国-总书记
粉丝 5
博文 4
码字总数 439
作品 0
青岛

暂无文章

Sql语言与MySql数据库

1. 数据库简介 1. 数据库,就是存储数据的仓库,只能通过sql语言来访问,数据库也是一个文件系统。通常,MySQL、Oracle等数据库,也被称为关系型数据库,其保存的不仅仅只是数据,还包括数据...

江左煤郎
29分钟前
0
0
IDEA 取消自动import .*

打开设置 > Editor > Code Style > Java > Scheme Default > Imports ① 将 Class count to use import with "*" 改为 99 (导入同一个包的类超过这个数值自动变为 * ) ② 将 Names count ......

乔老哥
31分钟前
1
0
PostGIS学习笔记(开篇)

PostGIS事实上算是笔者开始写博客的第一篇内容。而事实上那篇博文的内容并不丰富,笔者对PostGIS的了解仍然不多,然而17年在OSGeo课程学习时对PostGIS又有了进一步了解,并逐步发现它的强大。...

胖胖雕
31分钟前
1
0
【Centos】在nginx服务器中配置php和mysql

接上一章《【Centos】利用Vultr服务器和namesilo布网》(https://my.oschina.net/u/3776619/blog/2051986),在Centos中配置好nginx,并在iptables中开启了80端口,和为了远程mysql操作方便开...

yongh701
55分钟前
3
0
flume -- fileChannel简要分析其过程

flume之event写入FileChannel doPut(event)-->获取共享锁后[log.lockShared();]-->FlumeEventPointer ptr = log.put(transactionID, event); 此处的log.put即将transactionID及event进行后续......

-九天-
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部