首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Oracle Number数据类型及其严格性

Oracle Number数据类型及其严格性
EN

Stack Overflow用户
提问于 2012-04-09 09:16:40
回答 1查看 16.3K关注 0票数 1

我对oracle非常陌生,但我在课堂上一直在学习它,最近还接触到了number数据类型。我已经阅读了有关小数位数和精度(s,p)的文档,但我仍然不确定该类型的正确用法。

假设我想将百分比值存储为小数。小数可以是从0到1的任何数字,并且小数位后最多可以有3个数字。

要存储的一些可能的小数可能包括:

代码语言:javascript
复制
.66
.553
1.00

如果我将列设置为NUMBER(4,3),那么即使只有两个数字,它也可以工作吗?见下文

代码语言:javascript
复制
.22
.10
.35
etc...

简而言之,number类型是否要求满足确切的大小?例如:NUMBER(4,3)是否绝对要求插入的数据是4个数字,其中3个数字在小数点后?

谢谢你的帮助!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-04-09 09:27:23

列的数据类型限制了可以存储的值的范围。但是他们不做任何事情来强制特定的长度或精度。

就像您可以在VARCHAR2(100)列中存储单个字符或NULL一样,您可以存储精度小于3位、小数位数小于4位的数字。例如,值0和6.1对于NUMBER(4,3)列都是完全有效的。如果插入的值的精度位数太多,则该值将自动舍入到列定义中指定的精度。

代码语言:javascript
复制
SQL> create table foo (
  2    col1 number(4,3)
  3  );

Table created.

SQL> insert into foo values( 9.999 );

1 row created.

SQL> insert into foo values (0);

1 row created.

SQL> insert into foo values( 6.1 );

1 row created.

SQL> insert into foo values( 1.2345 );

1 row created.

SQL> select * from foo;

      COL1
----------
     9.999
         0
       6.1
     1.235
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10067945

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档