⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 prc_bs_fact_serv_fee_int.prc

📁 一个oracle数据库系统
💻 PRC
📖 第 1 页 / 共 2 页
字号:
      ||' 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 + -