暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle 整数显示为数字 (22) 和数字 (38)?

askTom 2017-05-13
367

问题描述

亲爱的AskTom,

我不明白整数和数字是如何存储的?我创建一个类型为integer的列。在表上进行描述并查看数字 (38),然后在数据字典上进行选择并查看数字 (22)。

谢谢!

SQL> 创建表nico (nico_int整数);

创建的表。

系统 @ orcl
SQL> 描述nico
名称为空?类型
-
尼科 _ int号 (38)

系统 @ orcl
SQL> 从dba_tab_columns中选择column_name,data_type,data_precision,data_length,其中table_name = 'NICO';

列名
------------------------------
数据类型
-
数据 _ 精度数据 _ 长度
-------------- -----------
尼科 _ int
编号
22



专家解答

它与数字数据类型有关。

我们可以存储38位 * precision *,即,有效数字,和dos,可能消耗多达22 * 字节 * 内部。

例如

SQL> create table t (
  2    x1 number(10,5)
  3  );

Table created.

SQL>
SQL> insert into t values (123.456);

1 row created.

SQL>
SQL> select dump(x1) from t;

DUMP(X1)
------------------------------------
Typ=2 Len=5: 194,2,24,46,61
复制


在这种情况下,我们有6个有效数字,但是我们仅使用5个字节就设法存储了它。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论