最近在跑成功率数据的时候出现了ORA-01426: 数字溢出现象,单我的字段设置的是number,怎么会出现这种现象呢,怎么解决?请各位大虾指点!! 代码如下1-1/(1+1/exp(
( 1.7582)+
MAX_INCRE_C_FEE *( -0.0204)+
INNET_MONTH *( 0.0180)+
MAX_CP_LOCAL_LONG *( -0.0134)+
B_02 *( -0.6583)+
MAX_INCRE_FEE *( -0.00520)+
BUSI_13 *( -0.5600)+
R_B_INNET_FEE *( 0.2003)+
R_B_16 *( 0.5680)+
BUSI_45 *( -0.8527)+
B_MOBILE_TEL_FEE *( 0.3489)+
R_FAVOR_FEE *( 0.00400)+
B_18 *( -0.6492)+
BUSI_19 *( -0.1488)+
BUSI_49 *( -0.4117)+
BUSI_54 *( -0.8421)+
CP_TO_MOB *( -0.00771)+
MAX_FUNC_FEE *( -0.0457)
))
ELSE 1 END As P_value,
其中p_value 定义如下
p_value number;
请大虾指教
( 1.7582)+
MAX_INCRE_C_FEE *( -0.0204)+
INNET_MONTH *( 0.0180)+
MAX_CP_LOCAL_LONG *( -0.0134)+
B_02 *( -0.6583)+
MAX_INCRE_FEE *( -0.00520)+
BUSI_13 *( -0.5600)+
R_B_INNET_FEE *( 0.2003)+
R_B_16 *( 0.5680)+
BUSI_45 *( -0.8527)+
B_MOBILE_TEL_FEE *( 0.3489)+
R_FAVOR_FEE *( 0.00400)+
B_18 *( -0.6492)+
BUSI_19 *( -0.1488)+
BUSI_49 *( -0.4117)+
BUSI_54 *( -0.8421)+
CP_TO_MOB *( -0.00771)+
MAX_FUNC_FEE *( -0.0457)
))
ELSE 1 END As P_value,
其中p_value 定义如下
p_value number;
请大虾指教
SELECT T.DEVICE_NUMBER,
1/(exp(-(-0.594*T_5
+0.338*T_7
-1.402*T_9
+0.472*T_10
+0.833*T_18
+0.586*T_26
+0.784*T_29
+0.509*T_36
+2.034*T_40
+0.306*T_42
+0.063*FUNC_FEE
+0.037*INCRE_C_FEE
-0.543*B_INNET_FEE
+0.000*MOBILE_DURA
+0.406
))+1) P_DX,
1/(exp(-(0.689*T_10
-1.664*T_23
+0.666*T_26
+0.888*T_29
+0.354*T_39
-0.891*B1_02
-0.544*B_INNET_FEE
+0.296
))+1) P_GPRS,
1/(EXP(-(
-0.318*T_1
-0.805*T_5
+0.320*T_7
-0.865*T_9
+3.059*T_10
+1.463*T_17
+0.383*T_24
-0.737*T_31
+0.605*T_33
+0.938*T_36
-0.594*T_38
+0.315*T_39
-0.173*T_42
+0.020*ROOT_FEE
+0.902*B1_07
-0.363*B_INNET_FEE
-0.402*B_MOBILE_TEL_FEE
+0.000*LOCAL_UNI_DURA
-0.822*B_03
+0.576*B_05
-1.223*B_09
-0.596*B_13
+1.883* B_17
+1.082))+1) P_JK,
1/(EXP(-(
+0.146*T_4
-0.294*T_5
+0.118*T_7
+0.239*T_10
+0.304*T_17
+0.572*T_18
+0.388*T_19
+0.489*T_26
+0.126*T_27
+0.385*T_29
+0.411*T_33
+0.182*T_36
+0.282*T_38
+0.186*T_39
+0.041*FUNC_FEE
+0.019*INCRE_C_FEE
+0.511*B1_06
+0.027*CP_LOCAL_LONG
+0.026*CP_SN_ROAM
+0.904*B_02
-0.510*B_08
-1.216 ))+1) P_MYB,
1/(EXP(-( 0.141*T_4
-0.424*T_5
+0.377*T_7
+0.417*T_10
+0.220*T_17
+0.705*T_18
+0.564*T_24
-0.898*T_25
+0.463*T_28
+0.417*T_29
-0.296*T_31
+0.941*T_33
+0.211*T_39
+0.171*T_42
+0.026*FUNC_FEE
+0.037*INCRE_C_FEE
+0.996*B1_03
+0.690*B1_06
-0.296*B_INNET_FEE
-0.272*B_MOBILE_TEL_FEE
+1.327*B_02
-1.028*B_16
+0.014 ))+1) P_RT
FROM cyb_zzyw_fzsh_end_2 t
上面报错。
处理办法是:
解决办法是:
在每个表达前加TRUNC(表达式,10),就是节断。
SELECT T.DEVICE_NUMBER,
1/(exp(-(-0.594*T_5
+0.338*T_7
-1.402*T_9
+0.472*T_10
+0.833*T_18
+0.586*T_26
+0.784*T_29
+0.509*T_36
+2.034*T_40
+0.306*T_42
+0.063*FUNC_FEE
+0.037*INCRE_C_FEE
-0.543*B_INNET_FEE
+0.000*MOBILE_DURA
+0.406
))+1) P_DX,
1/(exp(-(0.689*T_10
-1.664*T_23
+0.666*T_26
+0.888*T_29
+0.354*T_39
-0.891*B1_02
-0.544*B_INNET_FEE
+0.296
))+1) P_GPRS,
1/(EXP(-(
-0.318*T_1
-0.805*T_5
+0.320*T_7
-0.865*T_9
+3.059*T_10
+1.463*T_17
+0.383*T_24
-0.737*T_31
+0.605*T_33
+0.938*T_36
-0.594*T_38
+0.315*T_39
-0.173*T_42
+0.020*ROOT_FEE
+0.902*B1_07
-0.363*B_INNET_FEE
-0.402*B_MOBILE_TEL_FEE
+0.000*LOCAL_UNI_DURA
-0.822*B_03
+0.576*B_05
-1.223*B_09
-0.596*B_13
+1.883* B_17
+1.082))+1) P_JK,
1/(EXP(-(
+0.146*T_4
-0.294*T_5
+0.118*T_7
+0.239*T_10
+0.304*T_17
+0.572*T_18
+0.388*T_19
+0.489*T_26
+0.126*T_27
+0.385*T_29
+0.411*T_33
+0.182*T_36
+0.282*T_38
+0.186*T_39
+0.041*FUNC_FEE
+0.019*INCRE_C_FEE
+0.511*B1_06
+0.027*CP_LOCAL_LONG
+0.026*CP_SN_ROAM
+0.904*B_02
-0.510*B_08
-1.216 ))+1) P_MYB,
1/(EXP(-( 0.141*T_4
-0.424*T_5
+0.377*T_7
+0.417*T_10
+0.220*T_17
+0.705*T_18
+0.564*T_24
-0.898*T_25
+0.463*T_28
+0.417*T_29
-0.296*T_31
+0.941*T_33
+0.211*T_39
+0.171*T_42
+0.026*FUNC_FEE
+0.037*INCRE_C_FEE
+0.996*B1_03
+0.690*B1_06
-0.296*B_INNET_FEE
-0.272*B_MOBILE_TEL_FEE
+1.327*B_02
-1.028*B_16
+0.014 ))+1) P_RT
FROM cyb_zzyw_fzsh_end_2 t
上面报错。
处理办法是:
解决办法是:
在每个表达前加TRUNC(表达式,10),就是节断。