oracle 数值类型都转换为number类型存储

oracle中所有的数值类型除了binary_float和binary_double之外, 其他的数据类型都转换为number类型存储。 number类型是一种变长格式,长度范围[0~22],精度可达38 numeric(p,s):完全映射至number(p,s),p默认为38 decimal(p,s)或dec(p,s):完全映射至number(p,s) integer或int:完全映射至number(38) smallint:完全映射至number(38) float(b):映射至number类型 double precision:映射至number类型 real:映射至number类型 create table tb( col_1 number(5,5), col_2 numeric(10), col_3 decimal(38), col_4 int, col_5 smallint, col_6 double precision, col_7 real, col_8 float); select column_name,data_type,data_length,data_precision,data_scale from user_tab_columns where table_name='TB'; COLUMN_NAME DATA_TYPE DATA_LENGTH DATA_PRECISION DATA_SCALE ------------------------------ -------------------------- ------------- -------------- ---------- COL_1 NUMBER 22 5 5 COL_2 NUMBER 22 10 0 COL_3 NUMBER 22 38 0 COL_4 NUMBER 22 0 COL_5 NUMBER 22 0 COL_6 FLOAT 22 126 COL_7 FLOAT 22 63 COL_8 FLOAT 22 126 COL_9 BINARY_FLOAT 4 COL_10 BINARY_DOUBLE 8 从data_length这列看,上面所有的数值类型长度都是22字节,说明所有的类型都映射至了number类型。 binary_float:占用磁盘5个字节,其中4个固定字节用于存储浮点数,1个为长度字节。 binary_double:占用磁盘9个字节,其中8个固定字节用于存储浮点数,1个为长度字节。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值