oracle to number中number应该设置长度吗

&INT类型是NUMBER类型的子类型。下面简要说明:(1)NUMBER(P,S)该数据类型用于定义数字类型的数据,其中P表示数字的总位数(最大字节个数),而S则表示小数点后面的位数。假设定义SAL列为NUMBER(6,2)则整数最大位数为4位(6-2=4),而小数最大位数为2位。(2)INT类型当定义整数类型时,可以直接使用NUMBER的子类型INT,顾名思义:INT用于整型数据。
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&1 row insertedSQL& insert into tab select 1,1.55,1.6,8&1 row insertedSQL& insert into tab select 1,1.595,1,8&1 row inserted&SQL&&Commit complete&SQL& select *&&&&& ID0&&&&&&& ID1&&&&&&& ID2&&&&&& ID3---------- ---------- ---------- ---------&&&&& 1&&&&&&& 1.5&&&&&&& 1.6&&&&&&&& 8&&&&& 1&&&&&& 1.55&&&&&&& 1.6&&&&&&&& 8&&&&& 1&&&&& 1.595&&&&&&& 1.0&&&&&&&& 8
--查询数据字典表dba_tab_columnsSQL& 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_&TABLE_NAME&&&&&&& COLUMN_NAME&&&&&&& DATA_TYPE&&&&&&&& DATA_LENGTH&& DATA_PRECISION&&& DATA_SCALE--------------- -------------- -----------------& ----------------&&& -----------&&&&& ----------TAB&&&&&&&&&&&&&&& ID0&&&&&&&&&&&&&&&& NUMBER&&&&&&&&&&& 22&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 0TAB&&&&&&&&&&&&&&& ID1&&&&&&&&&&&&&&&& NUMBER&&&&&&&&&&& 22&&&&&&&&&&&&&&&&TAB&&&&&&&&&&&&&&& ID2&&&&&&&&&&&&&&&& NUMBER&&&&&&&&&&& 22&&&&&&&&&&&&& 8&&&&&&&&&&&&&&&&& 1TAB&&&&&&&&&&&&&&& ID3&&&&&&&&&&&&&&&& NUMBER&&&&&&&&&&& 22&&&&&&&&&&&&& 8&&&&&&&&&&&&&&&&& 0
在dba_tab_columns表中,Data_type表示字段类型;Data_length表示字段类型的长度;Data_Precision表示字段类型的精度的总长度,如果为null,表示精度的总长度不固定,最长为Data_Length;Data_scale表示字段类型的精度范围,如果为0,表示只能存储为整数,如果为null,表示可以存储整数或者浮点数,浮点数位数不确定,如果为整数,表示存储的精度位数。
查询dba_tab_columns表,发现tab表中ID0字段类型int已经被转换为number(22)。
----------------------------------------------------------------------------------------------------------------
VARCHAR2是Oracle提供的特定数据类型,Oracle可以保证VARCHAR2在任何版本中该数据类型都可以向上和向下兼容。VARCHAR在Oracle中不建议使用。
具体到NVARCHAR2和VARCHAR2的区别,从使用角度来看区别在于:NVARCHAR2在计算长度时和字符集相关的,例如数据库是中文字符集时以长度10为例,则
1、NVARCHAR2(10)是可以存进去10个汉字的,如果用来存英文也只能存10个字符。
2、而VARCHAR2(10)的话,则只能存进5个汉字,英文则可以存10个。
阅读(...) 评论()Oracle中INT、FLOAT、NUMBER区别_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
Oracle中INT、FLOAT、NUMBER区别
阅读已结束,下载文档到电脑
想免费下载更多文档?
定制HR最喜欢的简历
你可能喜欢oracle字段类型NUMBER类型
oracle字段类型NUMBER(38,3),括号中两个数字分别表示什么?
在Oracle中NUMBER的定义:
1、只有一个参数时,如NUMBER(24)。表示所定义的数字最大可设置24位整数。
2、有两个参数时,如NUMBER(38,
3)。表示所定义的数字最大是38位长,其中包含3位小数。就是说这个类型最大可设置35位整数和3位小数。
相当于java的int double类型
oracle包括三种数据类型:
1)数值:number或number(p,s)
p:精度,s:刻度(小数位数)
number(6,2) --------& 1234.57
0.001234 number(2,4) --------& 0.0012
1234 number(3,-1)--------& 1230
1204 number(3) --------& 超出精度
2)字符:char, varchar, varchar2
char与varchar的区别:
1.内容存储时占用的存储空间;
定长:char (声明固定长度)
'a' -& char(10) -& 10
'ab' -& char(10) -& 10
变长:varchar (根据实际存储的长度为准)
'a' -& varchar(10) -& 1
'ab' -& varchar(10) -& 2
2.所允许存储的最大长度;
char: 2000
varchar: 4000
varchar与varchar2的区别:
1.制定厂商不同:
varchar:ANSI
varchar2:Oracle
2.承诺不同;
3)日期:date '01-JAN-08'
世纪,年,月,日,时,分,秒
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。PLSQL显示number数据类型时的设置
PLSQL显示number数据类型时的设置
PLSQL 显示number数据类型时,有时候会因为数据太长而用科学计数法显示,
这样的话就会丢失精度,我们可以设置plsql让它显示原本的值 tools-&preperences,
打开窗口,然后选择sqlwindow。 & &
然后把number fields to_char和data fields to_char复选框选中。
sqlplus中,用sql语句设置,语句为:
set & numwidth & 38

我要回帖

更多关于 oracle to number 的文章

 

随机推荐