📄 prc_bs_fact_serv_fee_int.prc
字号:
||' storage '
||' ( '
||' initial 40K '
||' next 40K '
||' minextents 1 '
||' maxextents unlimited '
||' pctincrease 0 '
||' ) ';
EXECUTE IMMEDIATE' create index base.IDX_BS_FACT_SERV_FEE2 on BASE.BS_FACT_SERV_FEE_FLUCT2 (LATN_ID,SERV_ID,ACC_NBR) '
||' tablespace TBS_BASE_DEFAULT '
||' storage '
||' ( '
||' initial 40K '
||' next 40K '
||' minextents 1 '
||' maxextents unlimited '
||' pctincrease 0 '
||' ) ';
EXECUTE IMMEDIATE' create index base.IDX_BS_FACT_SERV_FEE3 on BASE.BS_FACT_SERV_FEE_FLUCT3 (LATN_ID,SERV_ID,ACC_NBR) '
||' tablespace TBS_BASE_DEFAULT '
||' storage '
||' ( '
||' initial 40K '
||' next 40K '
||' minextents 1 '
||' maxextents unlimited '
||' pctincrease 0 '
||' ) ';
EXECUTE IMMEDIATE ' TRUNCATE TABLE BASE.BS_FACT_SERV_FEE_FLUCT_TEMP';
--数据处理
OPEN CUR_3MONTH_FEE;
LOOP
FETCH CUR_3MONTH_FEE INTO ROW_CUR_3MONTH_FEE;
EXIT WHEN CUR_3MONTH_FEE%NOTFOUND;
BEGIN
PRC_GET_WAVING_INFO(
ROW_CUR_3MONTH_FEE.A_FACT_TOTAL_FEE ,
ROW_CUR_3MONTH_FEE.A_FACT_LOCAL_FEE ,
ROW_CUR_3MONTH_FEE.A_FACT_AREA_FEE ,
ROW_CUR_3MONTH_FEE.A_FACT_LONG_FEE ,
ROW_CUR_3MONTH_FEE.A_FACT_IP_FEE ,
ROW_CUR_3MONTH_FEE.A_FACT_NET_FEE ,
ROW_CUR_3MONTH_FEE.A_FACT_RENT_FEE ,
ROW_CUR_3MONTH_FEE.A_FACT_OTHERS_FEE,
ROW_CUR_3MONTH_FEE.B_FACT_TOTAL_FEE ,
ROW_CUR_3MONTH_FEE.B_FACT_LOCAL_FEE ,
ROW_CUR_3MONTH_FEE.B_FACT_AREA_FEE ,
ROW_CUR_3MONTH_FEE.B_FACT_LONG_FEE ,
ROW_CUR_3MONTH_FEE.B_FACT_IP_FEE ,
ROW_CUR_3MONTH_FEE.B_FACT_NET_FEE ,
ROW_CUR_3MONTH_FEE.B_FACT_RENT_FEE ,
ROW_CUR_3MONTH_FEE.B_FACT_OTHERS_FEE,
ROW_CUR_3MONTH_FEE.C_FACT_TOTAL_FEE ,
ROW_CUR_3MONTH_FEE.C_FACT_LOCAL_FEE ,
ROW_CUR_3MONTH_FEE.C_FACT_AREA_FEE ,
ROW_CUR_3MONTH_FEE.C_FACT_LONG_FEE ,
ROW_CUR_3MONTH_FEE.C_FACT_IP_FEE ,
ROW_CUR_3MONTH_FEE.C_FACT_NET_FEE ,
ROW_CUR_3MONTH_FEE.C_FACT_RENT_FEE ,
ROW_CUR_3MONTH_FEE.C_FACT_OTHERS_FEE,
ln_FACT_TOTAL_WAVING_PREC ,
ln_FACT_TOTAL_WAVING ,
ln_FACT_LOCAL_WAVING ,
ln_FACT_AREA_WAVING ,
ln_FACT_LONG_WAVING ,
ln_FACT_IP_WAVING ,
ln_FACT_NET_WAVING ,
ln_FACT_RENT_WAVING ,
ln_FACT_OTHERS_WAVING
);
--强度键值
ln_FLUCT_PREC_ID := FUN_GET_PREC_LEVEL_ID(ln_FACT_TOTAL_WAVING_PREC);
--量值
LN_FACT_AVG_TOTAL_FEE:=round((ROW_CUR_3MONTH_FEE.A_FACT_TOTAL_FEE
+ROW_CUR_3MONTH_FEE.B_FACT_TOTAL_FEE
+ROW_CUR_3MONTH_FEE.C_FACT_TOTAL_FEE)/3,2);
--平均费用量值键值
ln_FLUCT_AVG_DATA_ID := Fun_get_fee_level_id(LN_FACT_AVG_TOTAL_FEE);
--费用波动量值键值
ln_FLUCT_WAVING_DATA_ID:=Fun_get_waving_fee_level_id(ln_FACT_TOTAL_WAVING);
--趋势键值
ln_FLUCT_TREND_ID := Fun_get_trend_id(ROW_CUR_3MONTH_FEE.A_FACT_TOTAL_FEE,
ROW_CUR_3MONTH_FEE.B_FACT_TOTAL_FEE,
ROW_CUR_3MONTH_FEE.C_FACT_TOTAL_FEE);
INSERT INTO
BASE.BS_FACT_SERV_FEE_FLUCT_TEMP( LATN_ID , --NUMBER(4) Y 本地网编号
SERV_ID , --NUMBER(10) Y 业务维键值
AREA_CODE , --VARCHAR2(9) Y 本地网区号
ACC_NBR , --VARCHAR2(20) Y 业务号码
STATE_ID , --CHAR(3) Y 业务状态维键值
YEAR_MONTHLY_ID , --NUMBER(10) Y 时间维键值
EXCHANGE_ID , --NUMBER(4) Y 局向键值
SERV_TYPE_ID , --NUMBER(4) Y 设备类型维键值
BILLING_TYPE_ID , --NUMBER(4) Y 计费类型维键值
VIP_FLAG , --CHAR(1) Y 重要用户标志键值
CUST_CREDIT_ID , --NUMBER(4) Y 客户信用度键值
CUST_TYPE_ID , --NUMBER(4) Y 客户类型键值
CUST_GRADE_ID , --NUMBER(4) Y 客户服务类别键值
CUST_VALUE_ID , --NUMBER(4) Y 客户价值级别键值
FLUCT_PREC_ID , --NUMBER(6) Y 费用异动强度键值
FLUCT_AVG_DATA_ID , --NUMBER(6) Y 费用量值键值
FLUCT_WAVING_DATA_ID , --NUMBER(6) Y 费用波动量值键值
FLUCT_TREND_ID , --NUMBER(6) Y 费用异动趋势键值
--FLUCT_INTEGRATE_ID , --NUMBER(4) Y 异动综合键值
FACT_SERV_NUM , --NUMBER(10) Y 业务数量
FACT_DATA1 , --NUMBER(12,2) Y 0 第一个月总费用(元)
FACT_DATA2 , --NUMBER(12,2) Y 0 第二个月总费用(元)
FACT_DATA3 , --NUMBER(12,2) Y 0 本月总费用(元)
FACT_AVG_DATA , --NUMBER(12,2) Y 0 三个月平均费用(元)
FACT_TOTAL_WAVING , --NUMBER(12,2) Y 0 总费用峰谷差值(元)
FACT_TOTAL_WAVING_PREC , --NUMBER(12,2) Y 0 总费用峰谷变化比例(%)
FACT_LOCAL_WAVING , --NUMBER(12,2) Y 0 市话费波动量值(元)
FACT_AREA_WAVING , --NUMBER(12,2) Y 0 区间费波动量值(元)
FACT_LONG_WAVING , --NUMBER(12,2) Y 0 长话费波动量值(元)
FACT_IP_WAVING , --NUMBER(12,2) Y 0 IP电话费用(元)
FACT_NET_WAVING , --NUMBER(12,2) Y 0 互联网费波动量值(元)
FACT_RENT_WAVING , --NUMBER(12,2) Y 0 固定类费用波动量值(元)
FACT_OTHERS_WAVING --NUMBER(12,2) Y 0 其它费用波动量值(元)
)
VALUES (ROW_CUR_3MONTH_FEE.LATN_ID ,
ROW_CUR_3MONTH_FEE.SERV_ID ,
ROW_CUR_3MONTH_FEE.AREA_CODE ,
ROW_CUR_3MONTH_FEE.ACC_NBR ,
ROW_CUR_3MONTH_FEE.SERV_STATE ,
ROW_CUR_3MONTH_FEE.YEAR_MONTHLY_ID ,
ROW_CUR_3MONTH_FEE.EXCHANGE_ID ,
ROW_CUR_3MONTH_FEE.SERV_TYPE_ID ,
ROW_CUR_3MONTH_FEE.BILLING_TYPE_ID ,
ROW_CUR_3MONTH_FEE.VIP_FLAG ,
ROW_CUR_3MONTH_FEE.CUST_CREDIT_ID ,
ROW_CUR_3MONTH_FEE.CUST_TYPE_ID ,
ROW_CUR_3MONTH_FEE.CUST_GRADE_ID ,
ROW_CUR_3MONTH_FEE.CUST_VALUE_ID ,
ln_FLUCT_PREC_ID ,
ln_FLUCT_AVG_DATA_ID ,
ln_FLUCT_WAVING_DATA_ID ,
ln_FLUCT_TREND_ID ,
--ln_FLUCT_INTEGRATE_ID
ROW_CUR_3MONTH_FEE.C_FACT_SERV_NUM ,
ROW_CUR_3MONTH_FEE.A_FACT_TOTAL_FEE ,
ROW_CUR_3MONTH_FEE.B_FACT_TOTAL_FEE ,
ROW_CUR_3MONTH_FEE.C_FACT_TOTAL_FEE ,
LN_FACT_AVG_TOTAL_FEE ,
ln_FACT_TOTAL_WAVING ,
ln_FACT_TOTAL_WAVING_PREC ,
ln_FACT_LOCAL_WAVING ,
ln_FACT_AREA_WAVING ,
ln_FACT_LONG_WAVING ,
ln_FACT_IP_WAVING ,
ln_FACT_NET_WAVING ,
ln_FACT_RENT_WAVING ,
ln_FACT_OTHERS_WAVING
);
EXCEPTION
WHEN others THEN
null;
END;
END LOOP;
CLOSE CUR_3MONTH_FEE;
DELETE /*+NOLOGGING*/ BASE.BS_FACT_SERV_FEE_FLUCT T WHERE T.YEAR_MONTHLY_ID =ln_YyyyMm ;
COMMIT;
INSERT /*+APPEND NOLOGGING*/ INTO BASE.BS_FACT_SERV_FEE_FLUCT
SELECT * FROM BASE.BS_FACT_SERV_FEE_FLUCT_TEMP A;
COMMIT;
--*****************************End Code Body************************************
-- Update Program Status in Program state Table to 'C'
Prc_write_log(lv_ProgramName,'C');
EXCEPTION
WHEN OTHERS THEN
ERR:= SQLERRM(SQLCODE);
ROLLBACK;
-- Update Program Status in Program state Table to 'F'
Prc_write_log(lv_ProgramName,'F');
END ;
/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -