今天在插入oracle數據庫時,提示“ORA-01438:值大於為此列允許的精度“錯誤,經網上查找資料后解決了此錯誤
錯誤說明
ORA-01438,發生此錯誤的原因在於我們插入的數據長度超過了字段指定的字段長度,比如插入的數據為102329204123.33829492,小數點前長度為12,小數點后長度為8,若字段字符類型指定為Number(19,12),那么在插入時則就會報錯。
首先說下oralce的Number()在插入數據時遵循的規則:
設字段字符類型為Number(a,b),其中a>b,在插入數據時,整數部分長度最大不能超過a-b,小數部分長度如果大於b,則截取b長度的小數存入數據庫,其余的將被舍棄。
如剛才我們所舉的例子,19-12=7,只能存入整數位長度小於或等於7的數據,大於7時則就會報錯。
解決辦法
故解決辦法就是修改Number(a,b)中的a,使其保障存入數據的整數位長度小於a即可。