- 浏览: 244427 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
无它唯勤:
...
Spring Ioc AOP -
dubaopeng:
挺好的,拿去改改!
java 解析csv文件 -
灵程大哥:
先试一下,看行不行
java 判断文本文件编码 -
pxjianke:
谢谢兄弟。我现在在测试插入千万级数据。做测试。这个太有用了。
Oracle 高速批量速插入数据 解决方案
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;
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;
发表评论
-
Oracle insert into select 序列
2010-03-16 14:46 2367"INSERT INTO AUDIT_TASK_LO ... -
Oracle 存储过程
2007-11-07 11:53 596存储过程是指数据库中已编译的可调程序,它作为PL/SQ ... -
Oracle 安装注意事项
2007-11-07 22:17 667如果你的机器上存在其它版本的Oracle,请先删除以前版本的安 ... -
Oracle 游标
2007-11-11 15:31 1481Oracle游标,从字面理解就是游动的光标。用数据库语言来描述 ... -
ORACLE 异常汇集
2007-11-15 11:53 588------------------------------- ... -
存储过程 Update 返回改更后的 结果
2007-12-18 19:54 1335今天做邮件群发系统开发,遇到这样一个问题:更改数据库一 ... -
Oracle 返回 结果集
2007-12-19 19:26 685过程返回记录集: CREAT ... -
错误的
2007-12-20 19:47 540CREATE OR REPLACE PACKAGE BODY ... -
随机 返回 一条符合条件的记录
2008-01-21 10:29 681SELECT * FROM anti_shields SAMP ... -
ORACLE NOCOPY
2008-01-21 15:23 818PL/SQL中对out,in out参数使用的?默认形 ... -
ORACLE 存储过程 邮件服务器 反屏蔽
2008-01-22 12:09 684邮件群发反屏蔽的原理是这样的: 1.每封邮件内容不同( ... -
Oracle dblink
2008-02-20 14:06 608Create Database Link LinkName C ... -
让oracle做定时任务
2008-03-11 14:42 1078今天用oracle的定时任务来实现定时检测。于是goole了一 ... -
ORACL 查看连接
2008-03-14 18:16 610select schemaname,osuser,machin ... -
Oracle 常用函数
2008-03-28 14:42 5961.SUBSTR(string,start[,end]) ... -
Oracle 定时任务 JOB
2008-04-02 17:00 928众所周知,一般操作系统会提供定时执行任务的方法,例如:Uni ... -
copy表时丢失索引
2008-04-07 20:24 618今天发现了一个大问题,copy表时,会丢失索引.这导制 ... -
Oracle decode用法
2008-04-23 13:18 17051、Windows NT4.0+ORACLE 8.0.4 ... -
存储过程-a
2008-05-11 23:51 619create or replace PROCEDURE EMA ... -
存储过程-b
2008-05-11 23:52 699create or replace PROCEDURE Pro ...
相关推荐
出栈序列-c语言,自己编写的程序,因为是初学者,所以写的不好。
GBase8s 存储过程测试方法 -- '------------------ 存储过程--------------------------------' --在交互式sql交互式工具中执行,创建表 CREATE TABLE COM_T2 (C1 INT,C2 varchar2(10)); INSERT INTO COM_T2 VALUES...
本论文通过静态分析过程,分析了ANSI C标准下的C语言代码的词法和语法形式,实现了C语言程序信息的解析和存储在XML树存储结构中,然后设计、实现和验证了自动计算时间复杂度的算法模型。实验结果表明,C程序代码中的...
C语言设计是指使用C语言来设计和实现软件系统的过程。 knowledge point 3: 火车票订票系统 火车票订票系统是指一个能够实现火车票的订票、退票、查询、统计等功能的软件系统。该系统能够满足旅客的需求,提供便捷...
交通咨询系统-C语言 本文档旨在设计和实现一个交通咨询系统,以满足用户查询交通信息的需求。该系统具备两个主要功能:一是查询任意两个城市之间的最短距离,二是查询中转路线最少。下面是系统的详细设计和实现过程...
本设计报告旨在实现一个停车场管理系统,使用C语言编写该系统的主要功能是模拟停车场的管理过程,包括车辆的到达、离开和停车费用计算等。该系统使用栈模拟停车场,以队列模拟车场外的便道,按照从终端读入的输入...
同时,游戏还提供了撤消和重做的功能,方便用户在游戏过程中进行操作。 在游戏的实现中,我们可以看到使用了数组来存储游戏棋盘的状态,使用了函数来实现游戏的逻辑操作,例如游戏的开始、游戏的结束、游戏的状态...
"程序设计基础反猜数游戏-C语言-教学课件(与“递归”有关文档共49张)" 本文档是关于程序设计基础反猜数游戏的教学课件,主要讲解了C语言的基本概念、栈、函数调用机理、递归、递归与循环的比较等知识点。 首先,...
在系统中,使用了HideCursor函数来隐藏光标,以便于在菜单和图书信息浏览过程中不显示光标。该函数使用SetConsoleCursorInfo函数来设置光标信息。 3. 菜单系统 系统的菜单系统由menu函数实现,提供了图书入库、...
本报告介绍了一个C语言关键字识别程序的设计和实现过程。该程序使用C语言编写,通过对输入的C语言代码进行词法分析,识别出其中的关键字。该程序的设计和实现过程中,我们遇到了几个问题,并成功地解决了这些问题。
4. 文件存储和读取:本系统使用文件来存储便条信息,通过C语言编程实现文件的读取和写入操作。 5. 数据统计和分析:本系统可以统计每种产品的销售额,按销售额对销售员进行排序,并输出排序结果。同时,系统还可以...
本文档是2013年全国计算机二级考试历年真题练习考点,考察access-c语言的知识点。下面是对标题、描述、标签和部分内容的详细解释: 一、数据结构 * 数据的存储结构是指数据在计算机中的顺序存储方式(问题1)。 * ...
3. 可靠性高:哈夫曼树可以避免数据传输过程中的错误和损失,提高数据传输的可靠性。 哈夫曼树的应用 哈夫曼树广泛应用于各种领域,包括: 1. 数据压缩:哈夫曼树可以将原始数据压缩到极小的尺寸,提高数据传输...
本系统使用C语言实现,使用单向链表存储学生信息,使用结构体数组存储试题库。系统中自定义了大量的功能函数,包括学生密码的修改,登录权限的确定,个人资料的修改等。老师可以对试题进行查找、添加、修改、删除、...
C语言课程设计是一个旨在帮助学生深入理解和应用C语言编程的实践项目。以下是一些关于C语言课程设计的基本步骤和建议: 明确目标和需求:首先,你需要与授课教师或课程设计的相关人员沟通,明确课程设计的需求。这...
"数据结构-C语言版:单链表例题" 单链表是一种基本的数据结构,它广泛应用于计算机科学和互联网领域。本文将对单链表的基本概念和算法进行详细的介绍,并通过一个删除单链表中数据域值最大的结点的算法来加深读者的...
在排序操作结束之后系统将以直方图的形式打出排序过程中比较和移动次数。 系统的设计目标是为了提供一个友好的界面和简洁的操作方式,使用户能够方便地使用内部排序算法,比较和选择最适合实际应用的算法。
* 处理 (Process):算法的处理过程 * 输出 (Output):算法的输出结果 * 存储 (Storage):算法的存储要求 * 时间复杂度 (Time Complexity):算法的时间复杂度 1.6 数据结构的应用 * 算法设计 * 程序设计 * 数据库...
C语言课程设计是一个旨在帮助学生深入理解和应用C语言编程的实践项目。以下是一些关于C语言课程设计的基本步骤和建议: 明确目标和需求:首先,你需要与授课教师或课程设计的相关人员沟通,明确课程设计的需求。这...
C、 存储过程减轻网络流量 对于同一个针对数据库对象的操作,如果这一操作所涉及到的T-SQL语句被组织成一存储过程,那么当在客户机上调用该存储过程时,网络中传递的只是该调用语句,否则将会是多条SQL语句。从而...