DECLARE
V_BEGIN DATE := TO_DATE('2010-12-26 00:00', 'YYYY-MM-DD HH24:MI');
V_END DATE := TO_DATE('2011-01-06 23:00', 'YYYY-MM-DD HH24:MI');
BEGIN
WHILE V_BEGIN <= V_END LOOP
P_GKPIBSC_MOT(TO_CHAR(V_BEGIN, 'YYYY-MM-DD HH24:MI'));
V_BEGIN := V_BEGIN + 1 / 24;
END LOOP;
END;
/
CREATE OR REPLACE PROCEDURE P_TOPN_CI(V_DATE IN VARCHAR2,
V_TYPE IN INT,
V_RESULT OUT SYS_REFCURSOR) AS
BEGIN
IF V_TYPE = 1 THEN
EXECUTE IMMEDIATE 'TRUNCATE TABLE TOPN_CI_BLOCK1';
INSERT INTO TOPN_CI_BLOCK1
SELECT 0, --时段数量
'#N/A', --BTSNAME
BSC,
BTS,
LAC,
CI,
SUM(TRAFFIC_TCH) / NULLIF(SUM(AV_TCH), 0) TCH每线,
AVG(TRAFFIC_TCH) TCH话务量,
AVG(TRAFFIC_TCHH) TCH半速率话务量,
AVG(AV_TCH) TCH信道,
SUM(BLOCK_TCH) / NULLIF(SUM(REQ_TCH), 0) * 100 TCH拥塞率,
AVG(BAR_MIN) 流控,
SUM(BLOCK_SD) / NULLIF(SUM(REQ_SD), 0) * 100 SD拥塞率,
AVG(BUSY_SD_MAX) SD最大使用数,
AVG(AV_SD) SD信道,
SUM(TRAFFIC_SD) / NULLIF(SUM(AV_SD), 0) SD每线,
AVG(SMS_SD) 短信,
SUM(PCH_DISCARD) / NULLIF(SUM(PCH_REQ), 0) * 100 PCH拥塞率,
SUM(IA_DISCARD) / NULLIF(SUM(IA_REQ), 0) * 100 AGCH拥塞率,
AVG(BUSY_TCH_MAX) TCH最大使用数,
AVG(UL_BUSY_PD_MAX) ULPD最大使用数,
AVG(DL_BUSY_PD_MAX) DLPD最大使用数
FROM G_KPI_CI
WHERE (LAC, CI, RECTIME) IN
(SELECT LAC, CI, RECTIME
FROM TOPN_CI
WHERE TOPN_TYPE = 1
AND RECDATE = TO_DATE(V_DATE, 'YYYY-MM-DD'))
GROUP BY BSC, BTS, LAC, CI;
UPDATE TOPN_CI_BLOCK1 X
SET 时段数量 =
(SELECT BLOCK_HOURS
FROM (SELECT LAC, CI, COUNT(1) BLOCK_HOURS
FROM TOPN_CI
WHERE TOPN_TYPE = 1
AND RECDATE = TO_DATE(V_DATE, 'YYYY-MM-DD')
GROUP BY LAC, CI)
WHERE X.LAC = LAC
AND X.CI = CI);
COMMIT;
UPDATE TOPN_CI_BLOCK1 X
SET BTSNAME =
(SELECT BTSNAME
FROM WY_NE
WHERE X.LAC = LAC
AND X.CI = CI);
COMMIT;
OPEN V_RESULT FOR
SELECT *
FROM TOPN_CI_BLOCK1
ORDER BY 时段数量 * (TCH拥塞率 + 流控 + SD拥塞率) DESC;
END IF;
IF V_TYPE = 2 THEN
。。。
OPEN V_RESULT FOR
SELECT *
FROM TOPN_CI_SETUP1
ORDER BY 时段数量 * (1 - 呼叫建立成功率) * (1 - 呼叫建立成功率) * 呼建请求次数 DESC;
END IF;
END;
分享到:
相关推荐
讲有关java如何调用ORACLE存储过程以及游标使用,它只包含JAVA调用ORACLE存储过程游标使用(上),还有JAVA调用ORACLE存储过程游标使用(上),
NULL 博文链接:https://fruitking.iteye.com/blog/1447333
用callabledStatement调用oracle存储过程实用例子(IN OUT 传参数包括游标类型)
实际项目当中经常需要在一个存储过程中调用另一个存储过程返回的游标,本文列举了两种情况讲述具体的操作方法。
NULL 博文链接:https://liuzidong.iteye.com/blog/717050
存储过程调用 Function 并使用 游标循环得到每一条数据然后更新本条数据。初学代码写的不是很好,希望能给初学存储过程的兄弟们提供一点借鉴哦。
Spring JdbcTemplate调用Oracle存储过程输出游标结果集实现增删改查
详细的记录了C#如何调用oracle以及带有存储过程输出变量的方法,适合初学者。
NULL 博文链接:https://xiaohewoai.iteye.com/blog/523079
有俩种方法: 一种是声明系统游标,一种是声明自定义游标,然后后面操作一样,参数类型为 in out 或out (1)声明个人系统游标.(推荐) 代码如下: create or replace p_temp_procedure ( cur_arg out sys_refcursor;...
本文用一个案例系统的介绍了怎样用java调用oracle存储过程
实现了游标的一些使用方法,两种定义与使用的方法,存储过程的定义一使用调用返回结果集的存储过程
入参是字符串格式的xml,目的是解析xml节点值,作为数据库检索where条件,检索出数据库记录,利用四个游标返回四个数据集,然后用groovy脚本将四个游标数据集解析成json出参中对应的四个节点值。出参json有两层结构...
NULL 博文链接:https://vernonchen163.iteye.com/blog/1902788
oracle存储过程创建 游标的使用等等 java调用存储过程
T100ERP调用ORACLE 数据库存储过程(返回值为游标类型)处理为JSON和数组方法
这是自己这段时间学习Oracle数据库的一些有关存储过程和Java中调用存储过程的学习心得。
第一章 oracle存储过程概述 2 1.1 存储过程基本结构(PROCEDURE) 3 1.1.1创建存储过程 3 1.1.2 存储过程删除 5 1.1.3 调用存储过程 5 1.2存储函数(FUNCTIONE) 6 1.2.1 创建存储函数 6 1.2.2 删除存储函数 7 1.3 包...
springboot继承mybatis后,通过mybatis调用oracle数据库中创建的存储过程,并获取通过游标返回的数据。