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 ...
随机推荐
- CF25E Test
嘟嘟嘟 因为只有三个字符串,所以就有一个比较暴力的做法:枚举这三个串所有排列,然后对于每一个排列,减去这三个串两两的公共部分的长度,更新答案. 求公共部分自然想到kmp:比如s[1]接在s[0]后面, ...
- POJ 3233 Matrix Power Series 【经典矩阵快速幂+二分】
任意门:http://poj.org/problem?id=3233 Matrix Power Series Time Limit: 3000MS Memory Limit: 131072K To ...
- winform 实现彩票功能
版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/MrTraum/article/details/32702319 watermark/2/text/a ...
- Class<T>和Class<?>区别
Class<T>在实例化的时候,T要替换成具体类Class<?>它是个通配泛型,?可以代表任何类型
- CodeForces - 348A Mafia (巧妙二分)
传送门: http://codeforces.com/problemset/problem/348/A A. Mafia time limit per test 2 seconds memory li ...
- Win7下运行VC程序UAC权限问题 VC2010设置UAC权限方法
https://msdn.microsoft.com/en-us/library/bb756929.aspx 我使用的是VS2010,设为连接器清单文件的uac执行级别 直接项目右键---属性---配 ...
- 使用fir.im和蒲公英进行测试的一些注意事项
前言:使用fir.im和蒲公英进行测试的一些注意事项 最近公司的项目遇到了一个问题,有的用户的手机系统版本低于9.3高于9.0的存在崩溃的情况,8.x的系统的用户的有的界面的显示有问题(比如说图片严重 ...
- Oracle-01-数据库分类/oracle sql*plus常用命令
一.数据库分类 一.数据库分类1.小型数据库:access.foxbase2.中型数据库:informix.sql server.mysql3.大型数据库:sybase.db2.oracle 二.项目 ...
- 纯 HTML5 APP与原生APP的差距在哪?
纯 HTML5 APP与原生APP的差距在哪? 写过一些纯H5的APP,虽然开发起来的确很快很舒服,但和原生比起来纯H5APP还是有很多问题,主要聚集在以下几个方面: 1.动画 动画有很多种,比如侧边 ...
- MySQL——用户与密码
mysql安装完成之后,在/var/log/mysqld.log文件中给root生成了一个默认密码.通过下面的方式找到root默认密码,然后登录mysql进行修改: grep 'temporary p ...