Oracle 10g 与 SQL Server 2005 的数据类型
Oracle 10g 数据类型
SQL Server 2005 的数据类型
附录:
1、关于 NUMBER(p,s)
,能表示的有效值为 1.0 x 10-130 to (but not including) 1.0 x 10126。
p:精度值,指有效位数,从左边第一个不为0的数算起,小数点和负号不计入有效位数。取值范围为 0 ~ 38 。
s:标度值,小数点右边最小有效数字位数。取值范围为 -84 ~ 127 。
● s>0:精确到小数点右边 s 位,并四舍五入。
● s<0:精确到小数点左边 s 位,并四舍五入。
例如:
NUMBER(5,3)可以存储的数字形式为:pp.sss。
ps.
Scale can be greater than precision, most commonly when e notation is used. When scale is greater than precision, the precision specifies the maximum number of significant digits to the right of the decimal point. For example, a column defined as NUMBER(4,5) requires a zero for the first digit after the decimal point and rounds all values past the fifth digit after the decimal point.
当 s > p 时,例如 NUMBER(4,5) ,必须数值为 0.0xxxx 的数字(小数点后 s-p 位加0)。
示例:
定义格式 | 输入数值 | 存储状态 |
NUMBER | 123.89 | 123.89 |
NUMBER(5) | 123.89 | 124 |
NUMBER(5,0) | 123456 | ORA-01438: 值大于为此列指定的允许精度 |
NUMBER(6,2) | 123.89 | 123.89 |
123.8951 | 123.9 | |
NUMBER(2,5) | 0.000811 | 0.00081 |
123.89 | ORA-01438: 值大于为此列指定的允许精度 | |
1.2e-4 | 0.00012 |