您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

oracle中int与number的区别

2024/4/12 9:33:03发布19次查看
oracle本来就没有int类型,为了与别的数据库兼容,新增了int类型作为number类型的子集。 int类型只能存储整数; number可以存储浮点数,也可以存储整数; number(8,1)存储小数位为1位,总长度为8的浮点数,如果小数位数不足,则用0补全; number(8)存储总长度
 oracle本来就没有int类型,为了与别的数据库兼容,新增了int类型作为number类型的子集。
int类型只能存储整数;
number可以存储浮点数,也可以存储整数;
number(8,1)存储小数位为1位,总长度为8的浮点数,如果小数位数不足,则用0补全;
number(8)存储总长度为8的整数;
int相当于number(22),存储总长度为22的整数。
举例说明:
--创建表结构
sql> create table tab(id0 int,id1 number,id2 number(8,1),id3 number(8));
table created
sql>
--插入测试数据
sql> insert into tab select 1,1.5,1.6,8 from dual;
1 row inserted
sql> insert into tab select 1,1.55,1.6,8 from dual;
1 row inserted
sql> insert into tab select 1,1.595,1,8 from dual;
1 row inserted
sql> commit;
commit complete
sql> select * from tab;
id0        id1        id2       id3
---------- ---------- ---------- ---------
      1        1.5        1.6         8
      1       1.55        1.6         8
      1      1.595        1.0         8
--查询数据字典表dba_tab_columns
sql> select table_name,column_name,data_type,data_length,data_precision,data_scale from dba_tab_columns a
  2  where table_name='tab'
  3  and owner='netmax'
  4  order by column_id;
table_name        column_name        data_type         data_length   data_precision    data_scale
--------------- -------------- -----------------  ----------------    -----------      ----------
tab                id0                 number            22                                 0
tab                id1                 number            22               
tab                id2                 number            22              8                  1
tab                id3                 number            22              8                  0
sql>
在dba_tab_columns表中,
data_type表示字段类型;
data_length表示字段类型的长度;
data_precision表示字段类型的精度的总长度,如果为null,表示精度的总长度不固定,最长为data_length;
data_scale表示字段类型的精度范围,如果为0,表示只能存储为整数,
如果为null,表示可以存储整数或者浮点数,浮点数位数不确定,
如果为整数,表示存储的精度位数。
查询dba_tab_columns表,发现tab表中id0字段类型int已经被转换为number(22)。
来源:http://blog.csdn.net/ojuju10/article/details/4576446
----------------------------------------------------------------------------------------------------------------
oracle中nvarchar2与varchar2的区别varchar2是oracle提供的特定数据类型,oracle可以保证varchar2在任何版本中该数据类型都可以向上和向下兼容。
varchar在oracle中不建议使用。
具体到nvarchar2和varchar2的区别,从使用角度来看区别在于:nvarchar2在计算长度时和字符集相关的,例如数据库是中文字符集时以长度10为例,则
1、nvarchar2(10)是可以存进去10个汉字的,如果用来存英文也只能存10个字符。
2、而varchar2(10)的话,则只能存进5个汉字,英文则可以存10个。
来源:http://www.cnblogs.com/flyingfish/archive/2010/01/15/1648448.html
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product