【NUMBER】有关Oracle NUMBER类型定义中precision和scale的测试和总结
2011-12-26 10:33
429 查看
http://space.itpub.net/519536/viewspace-557312
下一篇 2010-09-11 22:47:28 / 个人分类:SQL
查看( 245 ) /
评论( 0 ) /
评分( 0 /
0 )
NUMBER数据类型的定义格式是:NUMBER(p,s)。本文对定义中的p(precision)和s(scale)做一个解释和总结。
1.官方文档中有关NUMBER数据类型的描述
p is the precision, or the total number of significant decimal digits, where the most significant digit is the left-most nonzero digit, and the least significant digit is the right-most known digit. Oracle guarantees the portability of numbers with precision
of up to 20 base-100 digits, which is equivalent to 39 or 40 decimal digits depending on the position of the decimal point.
s is the scale, or the number of digits from the decimal point to the least significant digit. The scale can range from -84 to 127.
2.关于NUMBER数据类型的测试
create table test ( a number(1,3));
insert into test values(0.12);
*
第 1 行出现错误:
ORA-01438: 值大于此列指定的允许精度
insert into test values(0.012);
已创建 1 行。
insert into test values(0.0125);
已创建 1 行。
select * from test;
A
----------
.012
.013
3.小结
1)整数部分长度>p-s时,报错;
2)小数部分长度>s时,舍入;
3)s为负数时,对小数点左边的s数字进行舍入;
4)当s>p时,p表示小数后第s位向左最多可以有多少位数字,如果大于p则报错,小数点后s位向右的数字被舍入.
Good luck.
secooler
10.09.11
-- The End --
【NUMBER】有关Oracle NUMBER类型定义中precision和scale的测试和总结
上一篇 /下一篇 2010-09-11 22:47:28 / 个人分类:SQL
查看( 245 ) /
评论( 0 ) /
评分( 0 /
0 )
NUMBER数据类型的定义格式是:NUMBER(p,s)。本文对定义中的p(precision)和s(scale)做一个解释和总结。
1.官方文档中有关NUMBER数据类型的描述
p is the precision, or the total number of significant decimal digits, where the most significant digit is the left-most nonzero digit, and the least significant digit is the right-most known digit. Oracle guarantees the portability of numbers with precision
of up to 20 base-100 digits, which is equivalent to 39 or 40 decimal digits depending on the position of the decimal point.
s is the scale, or the number of digits from the decimal point to the least significant digit. The scale can range from -84 to 127.
2.关于NUMBER数据类型的测试
create table test ( a number(1,3));
insert into test values(0.12);
*
第 1 行出现错误:
ORA-01438: 值大于此列指定的允许精度
insert into test values(0.012);
已创建 1 行。
insert into test values(0.0125);
已创建 1 行。
select * from test;
A
----------
.012
.013
3.小结
1)整数部分长度>p-s时,报错;
2)小数部分长度>s时,舍入;
3)s为负数时,对小数点左边的s数字进行舍入;
4)当s>p时,p表示小数后第s位向左最多可以有多少位数字,如果大于p则报错,小数点后s位向右的数字被舍入.
Good luck.
secooler
10.09.11
-- The End --
相关文章推荐
- 解决从pl/sql查看oracle的number(19)类型数据为科学计数法的有关问题
- Oracle中的NUMBER(precision, scale)
- ORACLE_NUMBER类型Scale为0引发的问题
- ORACLE_NUMBER类型Scale为0引发的问题
- 在Oracle中NUMBER数据类型的定义问题
- Oracle Number precision scale
- Oracle中如何定义NUMBER类型的长度
- 【Oracle】Number类型的定义
- ORACLE 中NUMBER类型默认的精度和Scale问题
- 数据库类型总结对比(Java,Hibernate,SQLServer,MySQL,Oracle)
- oracle中的number数据类型的浅析
- 有关数据类型转换的总结
- oracle中的类型转换to_char() to_number()
- 用typedef定义类型的总结分析
- Java泛型总结之定义泛型接口、类和类型通配符
- 有关C++中类类型转换操作符总结(必看篇)
- oracle PL/SQL的基本构成,块结构和基本语法要求,数据类型,变量定义,运算符和函数
- Oracle数据类型之number
- 测试 Oracle 中对 char 和 varchar2 两种类型的等值比较
- JavaScript中的Number类型、String类型、Global对象、Math对象总结