Oracle常用基本数据类型:
数据类型 | 取值范围 | 说明 |
---|---|---|
char(n) | 0 ~ 2000(单位:byte) | 定长字符串,n字节长,如果不指定长度,缺省为1个字节长(一个汉字为2字节) |
varchar2(n) | 0 ~ 4000(单位:byte) | 可变长的字符串,具体定义时指明最大长度n,这种数据类型可以放数字、字母以及ASCII码字符集(或者EBCDIC等数据库系统接受的字符集标准)中的所有符号。 如果数据长度没有达到最大值n,Oracle会根据数据大小自动调节字段长度,如果你的数据前后有空格,Oracle会自动将其删去。 VARCHAR2是最常用的数据类型。 可做索引的最大长度3209。 |
nvarchar2(n) | 0 ~ 4000(单位:byte) | 用来存储Unicode字符集的变长字符型数据,nvarchar2()中一个汉字都占两个字节。 |
long | 0 ~ 2(单位:GB) | 可变长字符列,最大长度限制是2GB,用于不需要作字符串搜索的长串数据,如果要进行字符搜索就要用varchar2类型。 long是一种较老的数据类型,将来会逐渐被BLOB、CLOB、NCLOB等大的对象数据类型所取代。 |
number(m,n) | m=1 to 38 n=-84 to 127 |
可变长的数值列,允许0、正值及负值,m是所有有效数字的位数,n是小数点以后的位数。 如:number(5,2),则这个字段的最大值是99,999,如果数值超出了位数限制就会被截取多余的位数,但在一行数据中的这个字段输入55575.316,则真正保存到字段中的数值是55575.32。如果n为0,则输入55575.316,真正保存的数据是55575。 |
date | 无 | 从公元前4712年1月1日到公元4712年12月31日的所有合法日期,Oracle其实在内部是按7个字节来保存日期数据,在定义中还包括小时、分、秒,缺省格式为DD-MON-YY,如07-11月-00 表示2000年11月7日。 |
timestamp | 无 | 显示的日期比date更精确,精确到小数秒,还能够显示上午还是下午。 |
raw(n) | n=1 to 2000 | 可变长二进制数据,在具体定义字段的时候必须指明最大长度n,Oracle用这种格式来保存较小的图形文件或带格式的文本文件,如Miceosoft Word文档。raw是一种较老的数据类型,将来会逐渐被BLOB、CLOB、NCLOB等大的对象数据类型所取代。 |
long raw | 无 | 可变长二进制数据,最大长度是2GB。Oracle用这种格式来保存较大的图形文件或带格式的文本文件,如Miceosoft Word文档,以及音频、视频等非文本文件,在同一张表中不能同时有long类型和long raw类型,long raw也是一种较老的数据类型,将来会逐渐被BLOB、CLOB、NCLOB等大的对象数据类型所取代。 |
blob | 0 ~ 4(单位:GB) | 大对象,存储二进制数据,用来保存较大的图形文件或带格式的文本文件,如Miceosoft Word文档,以及音频、视频等非文本文件,最大长度是4GB。 |
clob | 0 ~ 4(单位:GB) | 大对象,存储字符串数据,这种数据类型可以放数字、字母以及ASCII码字符集(或者EBCDIC等数据库系统接受的字符集标准)中的所有符号,用来保存较大的文本文件,最大长度是4GB。 |
nclob | 0 ~ 4(单位:GB) | 大对象,存储UNICODE类型的数据,支持固定宽度和可变宽度的字符集,最大长度是4GB。 |
bfile | 大小与操作系统有关 | 在数据库外部保存的大型二进制对象文件,这种外部的LOB类型,通过数据库记录变化情况,但是数据的具体保存是在数据库外部进行的。Oracle可以读取、查询BFILE,但是不能写入,大小由操作系统决定。 |
备注:
blob与clob类型在Oracle9i及以前的版本中允许存储最多4GB的数据,在Oracle10g及以后的版本中允许存储最多4GB*数据库块大小字节的数据。
blob包含不需要进行字符集转换的“二进制”数据,如果要存储电子表格,字处理文档,图像等文件很适合。
clob包含要进行字符集转换的信息,这种数据类型很适合存储文本信息。
Oracle中没有boolean类型。