oracle 游标例子
- CREATE OR REPLACE PROCEDURE PRC_WAP_ACTIVEUSERS(RETCODE OUT VARCHAR2)
- /***********************************************************
- * 功能:WAP指标--活跃用户统计(分批提交)
- * 参数:RETCODE(返回编码:0000成功)
- * 作者:
- * 创建时间:2013-01-16
- * 版本:1.0
- * 修改人:
- * 修改时间:
- **********************************************************/
- IS
- RET_CODE VARCHAR2(6); --错误信息代码
- RET_MSG VARCHAR2(200); --错误信息
- V_LAST_MONTH VARCHAR2(8); --上个月份
- V_FIRST_DAY_MONTH VARCHAR2(10); --上个月第一天
- V_END_DAY_MONTH VARCHAR2(10); --上个月第二天
- V_COUNT NUMBER; --计数变量
- V_COMMITNUM CONSTANT NUMBER :=1000000;--一次提交记录数(默认一百万)
- BEGIN
- --程序开始
- DBMS_OUTPUT.PUT_LINE('PRC_WAP_ACTIVEUSERS BEGIN : ' ||
- TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS'));
- RET_CODE := '0000'; --返回编码初始化
- V_COUNT := 0; --计数器初始化
- --申明游标
- DECLARE
- TYPE CUR_DATA_TYPE IS RECORD --定义动态游标数据类型
- (
- PHONE_NUM VARCHAR2(20), --电话号码
- LOGIN_TIMES VARCHAR2(2000)); --访问次数
- VRECORD CUR_DATA_TYPE; --定义数据类型
- BEGIN
- SELECT TO_CHAR(ADD_MONTHS(LAST_DAY(SYSDATE), -1), 'YYYYMM')
- INTO V_LAST_MONTH
- FROM DUAL;
- SELECT TO_CHAR(ADD_MONTHS(LAST_DAY(SYSDATE) + 1, -2), 'YYYYMMDD')
- INTO V_FIRST_DAY_MONTH
- FROM DUAL;
- SELECT TO_CHAR(ADD_MONTHS(LAST_DAY(SYSDATE), -1), 'YYYYMMDD')
- INTO V_END_DAY_MONTH
- FROM DUAL;
- FOR VRECORD IN (SELECT TEL AS PHONE_NUM, COUNT(T.TEL) AS LOGIN_TIMES
- FROM TEMP_BOSS_BIP1A021 T
- WHERE T.DAY_ID BETWEEN V_FIRST_DAY_MONTH AND
- V_END_DAY_MONTH HAVING COUNT(T.TEL) >= 2
- GROUP BY T.TEL) LOOP
- INSERT INTO T_BIP1A021
- (PHONE_NUM, LOGIN_TIMES, LOGIN_MONTH)
- VALUES
- (VRECORD.PHONE_NUM, VRECORD.LOGIN_TIMES, V_LAST_MONTH);
- IF ((MOD(V_COUNT, V_COMMITNUM)) = 0) THEN
- COMMIT; --求余:一百万提交一次
- END IF;
- V_COUNT := V_COUNT + 1;
- END LOOP;
- COMMIT;
- DBMS_OUTPUT.PUT_LINE('PRC_WAP_ACTIVEUSERS END: ' ||
- TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS'));
- EXCEPTION
- WHEN OTHERS THEN
- BEGIN
- ROLLBACK;
- RET_CODE := '0001';
- RET_MSG := '存储过程 PRC_WAP_ACTIVEUSERS 执行错误!' || CHR(10) ||
- '错误代码:' || SQLCODE || CHR(10) || '错误信息:' ||
- SUBSTR(SQLERRM, 1, 128);
- GOTO TOEND;
- END;
- END;
- --返回程序运作结果
- <<TOEND>>
- RETCODE := RET_CODE;
- IF (RET_CODE = '0000') THEN
- RET_MSG := '运行成功!';
- COMMIT;
- ELSE
- RET_MSG := '运行失败!' || RET_MSG;
- ROLLBACK;
- END IF;
- DBMS_OUTPUT.PUT_LINE(RET_MSG);
- DBMS_OUTPUT.PUT_LINE('END TIME : ' ||
- TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS'));
- END PRC_WAP_ACTIVEUSERS;
oracle 游标例子的更多相关文章
- 游标-Oracle游标汇总
游标(Cursor):用来查询数据库,获取记录集合(结果集)的指针,可以让开发者一次访问一行结果集,在每条结果集上作操作. 游标可分为: <!--[if !supportLists] ...
- Oracle游标动态赋值
1. oracle游标动态赋值的小例子 -- 实现1:动态给游标赋值 -- 实现2:游标用表的rowtype声明,但数据却只配置表一行的某些字段时,遍历游标时需fetch into到精确字段 CREA ...
- Oracle游标介绍
Oracle游标使用详解: 游标: 用来查询数据库,获取记录集合(结果集)的指针,我们所说的游标通常是指显式游标,因此从现在起没有特别指明的情况,我们所说的游标都是指显式游标.要在程序中使用游标,必须 ...
- [转载]oracle游标概念讲解
原文URL:http://www.2cto.com/database/201203/122387.html ORACLE游标概念讲解 什么是游标? ①从表中检索出结果集,从中每次指向一条记录进行交互 ...
- Oracle 游标使用总结(好文章)
游标(CURSOR)也叫光标,在关系数据库中经常使用,在PL/SQL程序中可以用CURSOR与SELECT一起对表或者视图中的数据进行查询并逐行读取. Oracle游标分为显示游标和隐式游标. 显示游 ...
- ORACLE游标概念讲解
1,什么是游标? ①从表中检索出结果集,从中每次指向一条记录进行交互的机制. ②关系数据库中的操作是在完整的行集合上执行的. 由 SELECT 语句返回的行集合包括满足该语句的 WHERE 子句所 ...
- Oracle 游标示例,带异常处理
Oracle游标示例一则,带异常处理. DECLARE CURSOR c_dl IS SELECT ID, NSRSBH, WSPZXH, ZXYY_DM, HZRQ, SWJG_DM, GXSJ F ...
- Oracle游标带参数
Oracle游标是可以带参数的,而SqlServer的游标就不可以了 create or replace procedure a as cursor b(c_id int)is select * fr ...
- Oracle 游标使用(转)
这个文档几乎包含了oracle游标使用的方方面面,全部通过了测试 ; ; dbms_output.put_line(sql) loop dbms_output.put_line( ; ; ; r_te ...
随机推荐
- Win7系统中哪些服务可以关闭?
Win7系统中很多服务和进程其实大家在平时都用不上,这些服务和进程不仅占用了很大部分的资源,而且还会影响系统的运行速度和安全.我们可以关闭那些不常用的服务和进程来加快系统运行速度,但对于一般的用户来说 ...
- Ubuntu14.04系统下无法连接Wi-Fi无线网以及安装BCM43142网卡驱动的解决方案
1.问题描述 博主近日开始学习ROS,首先必装Linux操作系统,选择的是Ubuntu14.04,安装过程略过,直接讲问题.安装完系统之后发现一个重要问题,没法使用Wi-Fi,只能使用有线网络,而且网 ...
- 用java语言编写的简单二叉树
package com.cjonline.foundation.evisa; public class TestTree { private int data=-1; private TestTree ...
- 面向对象编程——class继承
在上面的章节中我们看到了JavaScript的对象模型是基于原型实现的.特点是简单,缺点是理解起来比传统类-实例模型要困难,最大的缺点是继承的实现需要编写大量代码,并且需要正确实现原型链. 新的关键字 ...
- SpringMVC知识点总结
1. SpringMVC概述 SpringMVC是一个WEB层框架,主要用来负责与页面的交互. SpringMVC是Spring家族的一大组件.Spring整合Spring ...
- 使用补丁破解IntelliJ IDEA 2017收费版本(转)
1. 首先去官网http://www.jetbrains.com/idea/download/#section=windows下载Ultimate版(注意不是community版)下载并安装.一定要记 ...
- Oracle中with关键字的使用
open p_cr1 for with sqla as (select d.*, (select c.STATICMONTH from ly_zg_jzfbtstatic c where c.ID = ...
- Java跨系统调用接口(POST)
package com.bing.util; import com.bing.constant.ResultModel; import com.bing.model.Company; import c ...
- [HAOI2010]软件安装(树形背包,tarjan缩点)
题目描述 现在我们的手头有N个软件,对于一个软件i,它要占用Wi的磁盘空间,它的价值为Vi.我们希望从中选择一些软件安装到一台磁盘容量为M计算机上,使得这些软件的价值尽可能大(即Vi的和最大). 但是 ...
- 构建高可靠hadoop集群之5-服务级别授权
本人翻译自: http://hadoop.apache.org/docs/r2.8.0/hadoop-project-dist/hadoop-common/ServiceLevelAuth.html ...