oracle 的数据类型

1、字符

在Oracle中CHAR,NCHAR,VARCHAR,VARCHAR2,NVARCHAR2这五种类型的区别

1.CHAR(size)和VARCHAR(size)的区别
    CHAR为定长的字段,最大长度为2000字节;(char(2000))
    VARCHAR为可变长的字段,最大长度为4000字节;(varchar(4000))
2.CHAR(size)和NCHAR(size)的区别
    CHAR如果存放字母数字占1个字节,存放GBK编码的汉字存放2个字节,存放UTF-8编码的汉字占用3个字节;(当英文字符和汉字同时存储是是如何系统是如何识别出来的这点不是很清楚,请睾手帮忙答疑)
    NCHAR根据所选字符集来定义存放字符的占用字节数,一般都为2个字节存放一个字符(不管字符或者汉字)(如果为16gbk字符集时,中英文字符都占两个字节,最大值表示nchar(1000))
3.VARCHAR(size)和VARCHAR2(size)的区别
    在现在的版本中,两者是没有区别的;最大长度为4K字节;推荐使用VARCHAR2;
4.VARCHAR2(size)和NVARCHAR2(size)的区别
    最大长度为4000字节,区别同CHAR与NCHAR的区别;(如果数据库字符集长度是2,则NVARCHAR2最大为2K—nvarchar(2000))

 

2、数字数据类型

    Oracle使用标准、可变长度的内部格式来存储数字。这个内部格式精度可以高达38位。

    NUMBER数据类型可以有两个限定符,如:

    column NUMBER ( precision, scale)

    precision表示数字中的有效位。如果没有指定precision的话,Oracle将使用38作为精度。

    scale表示数字小数点右边的位数,scale默认设置为0. 如果把scale设成负数,Oracle将把该数字取舍到小数点左边的指定位数。

    BINARY_FLOAT和BINARY_DOUBLE:

从Oracle 10g开始,引入了两种新的数值类型:BINARY_FLOAT和BINARY_DOUBLE。它们就是IEEE 754定义的单精度浮点数和双精度浮点数。这里修正了前面“Oracle里面其实只有一种数据类型,即NUMBER”的说法。

由于.NET里面的Single/Double结构,同样符合IEEE 754定义,因此它们和BINARY_FLOAT/BINARY_DOUBLE是完全对应的。

与之相反的是,NUMBER类型是使用十进制指数方式存储的,同时它是一种“软件数据类型”,即是在Oracle软件本身中实现的,因此性能要相对低一些。如果需要存储完全符合IEEE 754的浮点数,或者比较在意性能问题,则可以考虑选择BINARY_FLOAT和BINARY_DOUBLE类型。

 

3、日期数据类型

    Oracle标准日期格式为:DD-MON-YY  HH:MI:SS,通过使用SQL语句的TO_DATE表达式中的参数来更新一个特定值。

posted on 2012-02-05 21:29  游弋的大虾米  阅读(499)  评论(0编辑  收藏  举报