`
hwpok
  • 浏览: 251686 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

存储过程-c

阅读更多
create or replace Procedure Pro_Drivemail_Open
Is
  V_SQL  VARCHAR2(5000);
  --CNT    NUMBER;

BEGIN
  --SELECT COUNT(*) INTO CNT FROM TAB WHERE TNAME LIKE 'TASK_EMAILS_%' AND LENGTH(SUBSTR(TNAME,INSTR(TNAME,'_',1,2)+1))>=6;

     FOR C IN (SELECT * FROM TAB WHERE TNAME LIKE 'TASK_EMAILS_%' AND LENGTH(SUBSTR(TNAME,INSTR(TNAME,'_',1,2)+1))>=6) LOOP
        V_SQL:='INSERT /*+ APPEND */ INTO EDM_SYSTEM_SEND_TMP NOLOGGING
                (ID,EMAIL,OPEN_TIME,SENDING_TIME,OPEN,CLICK)
                SELECT ID,EMAIL,OPEN_TIME,SENDING_TIME,OPEN,CLICK
                  FROM '||C.TNAME||' WHERE ACTIVE = 1 AND SENDING_TIME IS NOT NULL';
         --dbms_output.put_line(v_sql);
         EXECUTE IMMEDIATE V_SQL;
         COMMIT;
     END LOOP;
--------------------------------------------------------------------

     INSERT /*+ APPEND */ INTO EDM_SYSTEM_SEND NOLOGGING
     SELECT A.*,
            ROW_NUMBER() OVER(PARTITION BY EMAIL ORDER BY NVL(OPEN_TIME,SYSDATE-3650) DESC) AS RK
       FROM EDM_SYSTEM_SEND_TMP A;
     COMMIT;
--------------------------------------------------------------------

     INSERT /*+ APPEND */ INTO EDM_SYSTEM_ACTIVE NOLOGGING
            (EMAIL,SENDDATE_REC,OPENDATE_REC,SENDTIMES_TOT,OPENTIMES_TOT,SENDTIMES_MON,OPENTIMES_MON)
     SELECT A.EMAIL,A.SENDING_TIME,A.OPEN_TIME,B.SENDTIMES_TOT,B.OPENTIMES_TOT,C.SENDTIMES_MON,C.OPENTIMES_MON
       FROM EDM_SYSTEM_SEND A,   ---ALL Mails Table
            (SELECT EMAIL,
                    COUNT(*) SENDTIMES_TOT,
                    SUM(CASE WHEN OPEN <> 0 THEN 1 ELSE 0 END) OPENTIMES_TOT
               FROM EDM_SYSTEM_SEND
              GROUP BY EMAIL ) B,    ---Total Times Table
             (SELECT EMAIL,
                    COUNT(*) SENDTIMES_MON,
                    SUM(CASE WHEN OPEN <> 0 THEN 1 ELSE 0 END) OPENTIMES_MON
               FROM EDM_SYSTEM_SEND
              WHERE (SENDING_TIME-SYSDATE)<=60
              GROUP BY EMAIL ) C     ---Month Times Table
      WHERE A.RK = 1
        AND A.EMAIL = B.EMAIL(+)
        AND A.EMAIL = C.EMAIL(+);
      Commit;
      DELETE EDM_SYSTEM_SEND_TMP NOLOGGING;
      COMMIT;
End Pro_Drivemail_Open;


分享到:
评论

相关推荐

    C语言项目实战源码-课程设计源码-毕业设计源码-c语言连连看游戏

    "C语言项目实战源码-课程设计源码-毕业设计源码-c语言连连看游戏"就是这样一个绝佳的学习资源,它提供了一个完整的连连看游戏的源代码,可以帮助学生深入理解C语言的游戏开发过程。 连连看游戏,作为一款深受喜爱的...

    SQLServer储存过程-130808

    存储过程类似于C语言中的函数,用于执行管理任务或应用复杂的业务规则,具有多种优势,包括执行速度快、支持模块化设计、提高系统安全性和减少网络流量。 #### 存储过程的优势 1. **执行速度快**:存储过程在创建...

    SMS 消息编码与解码---C语言实现(bit7 bit8 ucs2串口等)

    它使用一个计数器`nChar`来跟踪当前处理的组内字符字节序号,以及一个变量`nLeft`来存储上一字节的残余数据。 7-bit解码函数如下: ```c int gsmDecode7bit(const unsigned char* pSrc, char* pDst, int ...

    万年历-----C语言

    《C语言实现万年历详解》 在编程领域,C语言以其简洁、高效和灵活性而备受推崇,尤其适合初学者入门。...在实际编写过程中,还可以进一步优化,如增加用户交互界面、提高效率、添加错误处理机制等,让程序更加完善。

    超强版---C语言精华集

    在C语言的学习过程中,首先,你需要理解C语言的基本结构,包括数据类型(如int、char、float等)、变量的声明与赋值、运算符的使用规则,以及控制流程语句(如if...else、for、while循环)。这些构成了C语言的基础,...

    出栈序列-c语言

    出栈序列-c语言,自己编写的程序,因为是初学者,所以写的不好。

    图书管理系统--c语言课程设计

    在计算机科学的学习过程中,C语言是基础且重要的编程语言,它以其高效、简洁的特性被广泛应用于系统开发、嵌入式编程以及各种课程设计之中。本项目是一个基于C语言编写的图书管理系统,旨在帮助用户实现图书的增删...

    C语言开发----c语言模拟快打旋风游戏源码.rar

    8. **游戏循环**:游戏的核心是一个无限循环,负责处理输入、更新游戏状态、渲染画面并重复这一过程。这个循环称为游戏主循环。 9. **算法和数据结构**:游戏中的碰撞检测、寻路算法(如A*算法)、动画帧管理等都...

    C语言开发----c语言扔香蕉的大猩猩.rar

    "C语言开发----c语言扔香蕉的大猩猩"这个标题可能是以一种幽默的方式来描绘C语言初学者在学习过程中的挑战,就像大猩猩扔香蕉一样,需要准确地掌握技巧和力度。下面将详细介绍C语言的关键知识点。 1. **基本语法**...

    电子竞赛---C语言应用

    凌阳C语言是针对SPCE061A单片机优化的C编译器,它允许开发者直接通过C语言控制硬件,同时提供了寄存器分配和数据类型管理,降低了编程的复杂性。使用凌阳C语言有以下优点: 1. **编译器管理**:寄存器分配和数据...

    BJFU-2021-C语言课设

    - `booknode.c`:可能定义了书籍数据结构(如链表节点),用于存储书籍信息。 - `bookinfo.c`:可能包含了关于书籍信息的具体处理,如获取和更新书籍详情。 - `main.c`:这是程序的主入口点,包含了程序的主要...

    理2244计科-C语言-OneNote笔记.rar

    这份"理2244计科-C语言-OneNote笔记"提供了对C语言深入学习的宝贵资料,涵盖了C语言的基础到高级概念。以下是笔记的主要内容: 1. **第1章:C语言概述** - C语言的历史与特点:介绍C语言由来,其高效、简洁和灵活...

    谭浩强--C语言程序设计(第二版)习题答案

    6. **预处理器**:预处理器是C语言编译过程的一部分,用于处理#include指令、宏定义和条件编译。读者将了解如何使用预处理器进行代码的条件化和模块化。 7. **输入/输出**:C语言的标准输入输出库(stdio.h)提供了...

    经典C源程序100例- C语言学习精品-进阶必备

    "C语言学习精品"强调这些示例代码是C语言学习过程中的精华部分,能够帮助学习者提高编程技巧和解决问题的能力。"C语言进阶必备"则意味着这些例子将涉及更复杂的主题,适合有一定基础的学习者用来巩固和扩展他们的...

    utf8转gbk-C语言版本.rar

    GBK是双字节编码,每个字符占用2个字节,相比于UTF-8,GBK在存储空间上较大,但对中文字符的支持较为全面。 在C语言中,实现UTF-8到GBK的转换通常需要借助查表法。"Utf8ToGbk.c"和"Utf8ToGbk.h"这两个文件很可能是...

    程序员参考--C语言参考手册

    最后,理解编译过程和链接器的作用也对深入学习C语言大有裨益。编译器将源代码转换为机器语言,而链接器负责合并各个编译后的对象文件,解决外部引用,生成最终的可执行文件。 总之,《程序员参考--C语言参考手册》...

    管理系统系列--C语言学生信息管理系统.zip

    不过,可以推测这个项目可能包含的一些关键概念和技术,如文件操作(用于持久化存储学生数据)、结构体(用于封装学生信息)、指针(在C语言中用于高效地处理数据)、循环和条件语句(处理逻辑和业务规则)、函数...

    ITAT-c语言练习题

    1. 变量与数据类型:在C语言中,变量是用来存储数据的容器。了解并熟练使用各种基本数据类型如int、char、float、double等至关重要。例如,int用于整数,char用于单个字符,float和double用于浮点数。理解它们的存储...

    家庭财务管理系统课程设计---C语言版

    C语言中的标准输入输出函数scanf和printf将在此过程中扮演重要角色。 5. **模块化编程**:文件名如input.c、order.c、alter.c、query.c、status.c、main.c、direct.c、linknode.c表明代码被划分为不同的功能模块。...

Global site tag (gtag.js) - Google Analytics