为了账号安全,请及时绑定邮箱和手机立即绑定

请问SQL 中的数据类型有 number(10) 这个类型吗?

/ 猿问

请问SQL 中的数据类型有 number(10) 这个类型吗?

请问SQL 中的数据类型有 number(10) 这个类型吗?


查看完整描述

4 回答

?
开满天机

numeric(10,2), 数字型,2位精度
numeric(18,5),数字型,5位精度
---你说得报错可能是位数不够,你把位数设大些,例如 numeric(18,2)

查看完整回答
反对 2019-06-01
?
慕妹3242003

相当于java的int double类型
oracle包括三种数据类型:
1)数值:number或number(p,s)
p:精度,s:刻度(小数位数)
1234.567 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'
世纪,年,月,日,时,分,秒

查看完整回答
反对 2019-06-01
?
慕标5265247

38代表总位数 3代表小数点后面位数

number(p,s)

p:1~38

s:-84~127

p>0,对s分2种情况:1. s>0

精确到小数点右边s位,并四舍五入。然后检验有效数位是否<=p;如果s>p,小数点右边至少有s-p个0填充。

2. s<0

精确到小数点左边s位,并四舍五入。然后检验有效数位是否<=p+|s|

123.2564 NUMBER 123.2564

1234.9876 NUMBER(6,2) 1234.99

12345.12345 NUMBER(6,2) Error

1234.9876 NUMBER(6) 1235

12345.345 NUMBER(5,-2) 12300

1234567 NUMBER(5,-2) 1234600

12345678 NUMBER(5,-2) Error

123456789 NUMBER(5,-4) 123460000

1234567890 NUMBER(5,-4) Error

12345.58 NUMBER(*, 1) 12345.6

0.1 NUMBER(4,5) Error

0.01234567 NUMBER(4,5) 0.01235

0.09999 NUMBER(4,5) 0.09999

扩展资料

oracle中数据类型number(m,n)中m表示的是所有有效数字的位数,n表示的是小数位的位数。m的范围是1-38,即最大38位。

1> .NUMBER类型细讲:

Oracle   number   datatype   语法:NUMBER[(precision   [, scale])]

简称:precision   -->   p 

scale   -->   sNUMBER(p,   s)

范围:   1   <=   p   <= 38,  

-84   <=   s   <= 127

保存数据范围: -1.0e-130   <= number value  <   1.0e+126        

保存在机器内部的范围:   1   ~   22   bytes有效位:从左边第一个不为0的数算起的位数。

s的情况:

s   >   0 ,精确到小数点右边s位,并四舍五入。然后检验有效位是否   <=   p。

s   <   0 ,精确到小数点左边s位,并四舍五入。然后检验有效位是否   <=   p   +   |s|。

s   =   0 ,此时NUMBER表示整数。


查看完整回答
反对 2019-06-01
?
慕运维8079593

38代表总位数 3代表小数点后面位数

number(p,s)

p:1~38

s:-84~127

p>0,对s分2种情况:1. s>0

精确到小数点右边s位,并四舍五入。然后检验有效数位是否<=p;如果s>p,小数点右边至少有s-p个0填充。

2. s<0

精确到小数点左边s位,并四舍五入。然后检验有效数位是否<=p+|s|

123.2564 NUMBER 123.2564

1234.9876 NUMBER(6,2) 1234.99

12345.12345 NUMBER(6,2) Error

1234.9876 NUMBER(6) 1235

12345.345 NUMBER(5,-2) 12300

1234567 NUMBER(5,-2) 1234600

12345678 NUMBER(5,-2) Error

123456789 NUMBER(5,-4) 123460000

1234567890 NUMBER(5,-4) Error

12345.58 NUMBER(*, 1) 12345.6

0.1 NUMBER(4,5) Error

0.01234567 NUMBER(4,5) 0.01235

0.09999 NUMBER(4,5) 0.09999

扩展资料

ORACLE数据库字段类型说明:

目前Oracle 数据库大概有26个字段类型,大体分为六类,分别是字符串类型、数字数据类型、日期时间数据类型、大型对象(LOB)数据类型、RAW和LONG RAW数据类型、ROWID和UROWID数据类型。

oracle字段类型限制与误区。

char(byte)    

固定长度字符串    最大长度2000字节。

varchar2(byte)

默认的表示方式,比如:varchar2(100),就相当于varchar2(100 byte),表示最大字节数是100,该字段最多能容纳100个字节,强调空间大小。

保存汉字等字符时,就要小心了。如果你的数据库用的是GBK编码,那么一个汉字将占用2个字节,最多能存50个汉字,如果你的数据库用的是UTF8编码,那么一个汉字将占用3个字节,最多能存33个汉字。

varchar2(char)

表示最大字符数是100,该字段最多能容纳100个字符,强调个数。假设varchar2(100 char),那么无论是数字、字母、汉字,都看成一个字符,最多写100个。

当然,汉字越多,占用的空间越大,同样遵循上边的数据库编码原则。例如:存入一个汉字,底层占2或3个字节,存入一个字母,占1个字节。

nvarchar2()

没有byte、char之分,类似于varchar2(char),只不过nvarchar2()屏蔽了数据库编码,无论是何种编码,nvarchar2()中一个汉字都占两个字节。

需要注意的是:

无论是varchar2还是nvarchar2,最大字节数都是4000.所以varchar(2000 char),当存入2000个汉字时,这时的总字节为6000(utf-8)。

但是最大的字节数为4000,这时多余的字节数就会被截取掉。

所以,对于GBK编码的数据库而言,安全的写法为:varchar2(2000 char)、nvarchar2(2000),对于UTF8编码的数据库而言,安全的写法为:varchar2(1333 char)、nvarchar2(2000)。


查看完整回答
反对 2019-06-01

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信