oraclenumber最⼤长度_Oracle容易混淆类型总结--int、
number和c。。。
概述varchar2最大长度
很多朋友对Oracle数据库中的⼀些类型会很容易混淆,其中最容易混淆的应该就是oracle数据库int、number和char、varchar、
varchar2类型了,下⾯针对这两个做⼀下区分。
⼀、oracle中int与number的区别
oracle本来就没有int类型,为了与别的数据库兼容,新增了int类型作为number类型的⼦集。int类型只能存储整数;number可以存储浮点
数,也可以存储整数;
number(8,1)存储⼩数位为1位,总长度为8的浮点数,如果⼩数位数不⾜,则⽤0补全;
number(8)存储总长度为8的整数;
int相当于number(22),存储总长度为22的整数。
实例:
1、环境模拟
--创建表结构create table tab(id0 int,id1 number,id2 number(8,1),id3 number(8));--插⼊测试数据insert into tab select 1,1.5,1.6,8 from dual;insert into tab select 1,1
2、查询数据字典表dba_tab_columns
select table_name,column_name,data_type,data_length,data_precision,data_scale from dba_tab_columns a where table_name='TAB' and owner='GLOGOWNE
说明:
Data_type表⽰字段类型;
Data_length表⽰字段类型的长度;
Data_Precision表⽰字段类型的精度的总长度,如果为null,表⽰精度的总长度不固定,最长为Data_Length;
Data_scale表⽰字段类型的精度范围,如果为0,表⽰只能存储为整数,如果为null,表⽰可以存储整数或者浮点数,浮点数位数不确定,如果为整数,表⽰存储的精度位数。
查询dba_tab_columns表,发现tab表中ID0字段类型int已经被转换为number(22)。
⼆、oracle中char、varchar、varchar2的区别
VARCHAR2是Oracle提供的特定数据类型,Oracle可以保证VARCHAR2在任何版本中该数据类型都可以向上和向下兼容。oracle中建
议使⽤varchar2,VARCHAR不建议使⽤。
1.char占⽤固定的字节控件,例如char(20),abc在该字段中存储为abc+17个空格;
2.varchar是标准sql的写法,可以存储空字符串;
3.varchar2是oracle特有的字段,varchar2(20)表⽰该字段最⼤长度为20,实际存储的是数据的长度;
具体到NVARCHAR2和VARCHAR2的区别,从使⽤⾓度来看区别在于:
NVARCHAR2在计算长度时和字符集相关的,例如数据库是中⽂字符集时以长度10为例,则
1、NVARCHAR2(10)是可以存进去10个汉字的,如果⽤来存英⽂也只能存10个字符。
2、⽽VARCHAR2(10)的话,则只能存进5个汉字,英⽂则可以存10个。
NVARCHAR2 DatatypeThe NVARCHAR2 datatype is a Unicode-only datatype. When you create a table with an NVARCHAR2 column, you supply the max 后⾯会分享更多devops和DBA⽅⾯的内容,感兴趣的朋友可以关注下~