ORACLE 存储过程 遍历查询记录
来源:互联网 发布:win7网络位置怎么修改 编辑:程序博客网 时间:2024/06/05 22:37
DECLARE
//声明变量
BEGIN
//具体操作
if then
//..
end if;
loop
//..
end Loop;
END;
具体为
DECLARE
TYPE c1 IS REF CURSOR;
dateLast date ;
dateNow date ;
cBQHM t_rfid_passcar_i.Bqhm%TYPE;-- BQHM
cLastBQHM t_rfid_passcar_i.Bqhm%TYPE;-- BQHM
bHaveLast BOOLEAN := FALSE;
temp_cursor c1;
iContrast NUMBER(10) := 0;
iIndex NUMBER(10) := 0;
BEGIN
OPEN temp_cursor
FOR
SELECT BQHM, JRSJ FRom t_rfid_passcar_i where BQHM IN
(select BQHM from t_rfid_passcar_i group by BQHM having count(*)>1)
order by "BQHM" ASC, "JRSJ" ASC;
LOOP
FETCH temp_cursor INTO cBQHM, dateNow;--获得当前记录的数据
EXIT WHEN temp_cursor%NOTFOUND;
IF bHaveLast THEN
BEGIN
iContrast := ROUND(to_number(dateNow - dateLast) * 24 * 60 * 60) ;
IF cLastBQHM = cBQHM THEN
IF iContrast < (60 * 20) THEN
iIndex := iIndex + 1;
dbms_output.put_line(iIndex || ' ' || cBQHM || ' ' || iContrast || ' ' || dateLast || ' '|| dateNow || ' ' );
END IF;
END IF;
END;
END IF;
--dbms_output.put_line('-----------' || iIndex || cBQHM || ' ' || iContrast || ' ' || dateLast || ' '|| dateNow || ' ' );
dateLast := dateNow;
cLastBQHM := cBQHM;
bHaveLast := TRUE;
--dbms_output.put_line(to_char(dateNow, 'yyyy-mm-dd hh24:mi:ss'));
END LOOP;
CLOSE temp_cursor;
END;
可以像c++等其他语言那样编程对记录集进行操作, 写了一下午,终于 实现了对结果集 不同记录的统计. 后来才发现这叫存储过程 哈哈, 原来sql也可以编程.
2012-7-23 17:35:00
- ORACLE 存储过程 遍历查询记录
- oracle 存储过程记录
- oracle 存储过程记录
- Oracle存储过程记录
- oracle 存储过程 stored procedure 查询记录(带包)
- Oracle 查询存储过程
- oracle存储过程笔记记录
- Oracle存储过程记录异常
- Oracle存储过程学习记录
- oracle 存储过程 stored procedure 查询一条记录或多条记录
- oracle 存储过程 stored procedure 查询一条记录或多条记录
- Oracle存储过程查询分页
- oracle 分页查询存储过程
- oracle 存储过程模糊查询
- Oracle存储过程分页查询
- 存储过程分页查询(ORACLE)
- 查询重复记录的通用存储过程
- Oracle存储过程使用游标遍历
- Java面试题
- C#Thread类—多线程
- 23种设计模式(11):责任连模式
- Ubuntu 12.04 (或11.10) 一键部署安装OpenStack云计算平台
- Struts2_学习笔记(七)----OGNL
- ORACLE 存储过程 遍历查询记录
- Linux性能分析工具详解
- 利用开源程序(ImageMagick+tesseract-ocr)实现图像验证码识别
- HDOJ 1869 六度分离
- HTTP通信POST方式
- C#动态编译
- 学习笔记(二十二)
- Git历险记(一)
- 优化WebLogic 服务器性能参数