文档章节

oracle存储过程

开源中国-总书记
 开源中国-总书记
发布于 2016/07/15 15:39
字数 249
阅读 10
收藏 0
点赞 0
评论 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
青岛

暂无文章

SpringBoot | 第十章:Swagger2的集成和使用

前言 前一章节介绍了mybatisPlus的集成和简单使用,本章节开始接着上一章节的用户表,进行Swagger2的集成。现在都奉行前后端分离开发和微服务大行其道,分微服务及前后端分离后,前后端开发的...

oKong
今天
9
0
Python 最小二乘法 拟合 二次曲线

Python 二次拟合 随机生成数据,并且加上噪声干扰 构造需要拟合的函数形式,使用最小二乘法进行拟合 输出拟合后的参数 将拟合后的函数与原始数据绘图后进行对比 import numpy as npimport...

阿豪boy
今天
4
0
云拿 无人便利店

附近(上海市-航南路)开了家无人便利店.特意进去体验了一下.下面把自己看到的跟大家分享下. 经得现场工作人员同意后拍了几张照片.从外面看是这样.店门口的指导里强调:不要一次扫码多个人进入....

周翔
昨天
1
0
Java设计模式学习之工厂模式

在Java(或者叫做面向对象语言)的世界中,工厂模式被广泛应用于项目中,也许你并没有听说过,不过也许你已经在使用了。 简单来说,工厂模式的出现源于增加程序序的可扩展性,降低耦合度。之...

路小磊
昨天
175
1
npm profile 新功能介绍

转载地址 npm profile 新功能介绍 npm新版本新推来一个功能,npm profile,这个可以更改自己简介信息的命令,以后可以不用去登录网站来修改自己的简介了 具体的这个功能的支持大概是在6这个版...

durban
昨天
1
0
Serial2Ethernet Bi-redirection

Serial Tool Serial Tool is a utility for developing serial communications, custom protocols or device testing. You can set up bytes to send accordingly to your protocol and save......

zungyiu
昨天
1
0
python里求解物理学上的双弹簧质能系统

物理的模型如下: 在这个系统里有两个物体,它们的质量分别是m1和m2,被两个弹簧连接在一起,伸缩系统为k1和k2,左端固定。假定没有外力时,两个弹簧的长度为L1和L2。 由于两物体有重力,那么...

wangxuwei
昨天
0
0
apolloxlua 介绍

##项目介绍 apolloxlua 目前支持javascript到lua的翻译。可以在openresty和luajit里使用。这个工具分为两种模式, 一种是web模式,可以通过网页使用。另外一种是tool模式, 通常作为大规模翻...

钟元OSS
昨天
2
0
Mybatis入门

简介: 定义:Mybatis是一个支持普通SQL查询、存储过程和高级映射的持久层框架。 途径:MyBatis通过XML文件或者注解的形式配置映射,实现数据库查询。 特性:动态SQL语句。 文件结构:Mybat...

霍淇滨
昨天
2
0
开发技术瓶颈期,如何突破

前言 读书、学习的那些事情,以前我也陆续叨叨了不少,但总觉得 “学习方法” 就是一个永远在路上的话题。个人的能力、经验积累与习惯方法不尽相同,而且一篇文章甚至一本书都很难将学习方法...

_小迷糊
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部