简单存储过程实例:P_GCELL_PEAK_ZTE

CREATE OR REPLACE PROCEDURE P_GCELL_PEAK_ZTE(I_RECDATE IN VARCHAR) AS
V_EXIST INT;
V_RECDATE DATE := TO_DATE(I_RECDATE, 'YYYY-MM-DD');

MY_BREAK EXCEPTION;

BEGIN
SELECT COUNT(1)
INTO V_EXIST
FROM A_BASIC_CS_RADIO_H
WHERE COLLECTTIME BETWEEN V_RECDATE AND V_RECDATE + 23 / 24;
IF V_EXIST = 0 THEN
RAISE MY_BREAK;
ELSE
DBMS_OUTPUT.PUT_LINE('A_BASIC_CS_RADIO_H 记录:' || V_EXIST);
END IF;

EXECUTE IMMEDIATE 'TRUNCATE TABLE GCELL_PEAK_TEMPZTETCH';
INSERT INTO GCELL_PEAK_TEMPZTETCH
SELECT BSCID, SITEID, BTSID, COLLECTTIME, TRAFFIC_TCH
FROM (SELECT BSCID,
SITEID,
BTSID,
COLLECTTIME,
(C100030127 + C100030129) / 3600 TRAFFIC_TCH,
ROW_NUMBER() OVER(PARTITION BY BSCID, SITEID, BTSID ORDER BY(C100030127 + C100030129) DESC) RN
FROM A_BASIC_CS_RADIO_H
WHERE COLLECTTIME BETWEEN V_RECDATE AND V_RECDATE + 23 / 24)
WHERE RN = 1;
COMMIT;
SELECT COUNT(1) INTO V_EXIST FROM GCELL_PEAK_TEMPZTETCH;
DBMS_OUTPUT.PUT_LINE('GCELL_PEAK_TEMPZTETCH TCH忙时已经汇总:' || V_EXIST);

EXECUTE IMMEDIATE 'TRUNCATE TABLE GCELL_PEAK_TEMPZTESD';
INSERT INTO GCELL_PEAK_TEMPZTESD
SELECT BSCID, SITEID, BTSID, COLLECTTIME, TRAFFIC_SD
FROM (SELECT BSCID,
SITEID,
BTSID,
COLLECTTIME,
C100030124 / 3600 TRAFFIC_SD,
ROW_NUMBER() OVER(PARTITION BY BSCID, SITEID, BTSID ORDER BY C100030124 DESC) RN
FROM A_BASIC_CS_RADIO_H
WHERE COLLECTTIME BETWEEN V_RECDATE AND V_RECDATE + 23 / 24)
WHERE RN = 1;
COMMIT;
SELECT COUNT(1) INTO V_EXIST FROM GCELL_PEAK_TEMPZTESD;
DBMS_OUTPUT.PUT_LINE('GCELL_PEAK_TEMPZTESD SD忙时已经汇总:' || V_EXIST);

EXCEPTION
WHEN MY_BREAK THEN
DBMS_OUTPUT.PUT_LINE('A_BASIC_CS_RADIO_H 没有记录');
END;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值