ORA-01438: 值大於為此列指定的允許精度


Number的數據聲明如下:
表示        作用        說明
Number(p, s)        聲明一個定點數        p(precision)為精度,s(scale)表示小數點右邊的數字個數,精度最大值為38,
Number(p)        聲明一個整數        相當於Number(p, 0)
Number        聲明一個浮點數        其精度為38,要注意的是scale的值沒有應用,也就是說scale的指不能簡單的理解為0,或者其他的數。

定點數的精度(p)和刻度(s)遵循以下規則:
?        當一個數的整數部分的長度 > p-s 時,Oracle就會報錯
?        當一個數的小數部分的長度 > s 時,Oracle就會舍入。
?        當s(scale)為負數時,Oracle就對小數點左邊的s個數字進行舍入。
?        當s > p 時, p表示小數點后第s位向左最多可以有多少位數字,如果大於p則Oracle報錯,小數點后s位向右的數字被舍入

 

所以,當錄入的數據出現其中某一種情況,就有可能報錯!如100.003入到Number(6,4)的列中,就會報錯,因為100為三位數,3>6-4

 

http://blog.sina.com.cn/s/blog_4d6c7dea0101eh0p.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM