vincentz

Oracle 数据类型

一、Oracle数据类型

1.字符数据类型

CHAR

固定长度的字符串,可以存储字母数字值。长度可以是1到2000个字节。如果在定义时未指定大小,则默认占用一个字节。

如果用户输入的值小于指定的长度,数据库则用空格填充至固定长度。

VARCHAR2

用于存储可变长度的字符串或字母数字值。长度可以是1到4000个字节。定义该数据类型时,应指定大小。

与CHAR相比,使用VARCHAR2更节省磁盘空间,例如有列为VARCHAR2数据类型定义时的长度为30字节,如果用户只输入10个字节的字符,则该行中的列长度将只有10个字符。如果是CHAR类型,它将占用30个字节。

LONG

用于存储可变长度字符数据,最多能存储2GB。LONG类型用来存储VARCHAR2不能存储的长文本信息。其长度受于计算机上可用空间的限制。使用LONG类型时需遵循以下限制:

  一个表中只有一列可以为LONG类型

  LONG不能定义为唯一约束或主键约束

  LONG列不能建立索引

  过程或存储过程不能接受LONG数据类型的参数

2.数值数据类型

NUMBER

用于存储正数、负数、零、定点数或精度为38位的浮点数。该数据类型的格式为NUMBER(p,s)

p为精度,表示数字的总位数,它在1至38之间。s为范围,表示小数点右边数字的位数,它在-84至127之间。

3.日期时间数据类型

DATE

用于存储表中的日期和时间数据。Oracle用自己的格式存储日期,使用7个固定长度的字节分别存储世纪、年、月、日、小时、分和秒。日期取值的范围从公元前4712年1月1日到9999年12月31日。(SYSDATE函数返回当前的日期和时间)

TIMESTAMP

用于存储日期的年、月、日以及时间的小时、分和秒值。其中秒值精确到小数点后6位,该数据类型同时包含时区信息。(SYSTIMESTAMP函数返回当前日期、时间和时区)

RAW和LONG RAW数据类型

RAW

用于存储基于字节的数据,如二进制数据或字节串,长度可以是1到2000个字节,使用该数据类型时就指定大小。RAW可以建立索引。

LONG RAW

用于存储可变长度的二进制数据或字节串,最多能存储2GB。该数据类型不可建立索引。

LOB

可存储4GB的非结构化信息,如声音和视频的剪辑。它们允许对数据进行高效、随机、分段的访问。LOB可以是外部的也可以是内部的,这取决于它们相对于数据库的位置。修改LOB类型的数据可以使用SQL数据操纵语言来完成,也可以通过PL/SQL中提供的程序包DBMS_LOB来完成。一个表中可以有多列为LOB数据类型。

  CLOB(CHARACTER LOB)

  字符LOB,可以存储单字节字符和多字节字符数据还可存储非结构化的XML文档。

  BLOB(Binary LOB)

  二进制LOB,可存储较大的二进制对象,如图形、视频、声音剪辑。

  BFILE(Binary File)

  二进制文件,能够将二进制文件存储在数据库外部的操作系统文件中。BFILE列存储一个BFILE定位器指向位于服务器文件系统上的二进制文件。支持的文件最大为4GB。

posted @ 2014-04-24 14:05  达达小懒  阅读(287)  评论(0编辑  收藏  举报