Oracle提供了22中不同的SQL数据类型:
char:定长字符串,会用空格填充来达到最大长度。非null的CHAR(10)包含10个字节信息。CHAR字段最多可以存储2000个字节信息。
nchar:包含unicode格式数据的定长字符串。NCHAR字段最多可存储2000字节的信息。
varchar2:是VARCHAR的同义词。这是一个变长字符串,与CHAR类型不同,它不会用空格将字段或变量填充至最大长度。VARCHAR(10)可能包含0~10字节的信息,最多可存储4000字节信息。从12c起,可以存储32767字节信息。
nvarchar2:包含unicode格式数据的变长字符串。最多可存储4000字节信息。从12c起,可以存储32767字节信息。
raw:一种变长二进制数据类型,采用这种数据类型存储的数据不会发生字符集转换。
number:能存储精度最多高达38位的数字。这种类型的数据会以变长方式来存储,长度在0~22字节。
binary_float:32位单精度浮点数,可以支持至少6位精度,占用磁盘上5个字节的存储空间。
binary_double:64位双精度浮点数,可以支持至少15位精度,占用磁盘上9个字节的存储空间。
long:这种类型能存储最多2GB的字符数据
long raw:LONG RAW类型能存储多达2GB的二进制信息
date:这是一个7字节的定宽日期/时间数据类型,其中包含7个属性:世纪、世纪中的哪一年、月份、月中的哪一天、小时、分钟、秒。
timestamp:这是一个7字节或11字节的定宽日期/时间数据类型,它包含小数秒
timestamp with time zone:这是一个13字节的timestamp,提供了时区支持。
timestamp with local time zone:这是一个7字节或11字节的定宽日期/时间数据类型,在数据的插入和读取时会发生时区转换
interval year to month:这是一个5字节的定宽数据类型,用于存储一个时段。
interval day to second:这是一个11字节的定宽数据类型,用于存储一个时段。将时段存储为天/小时/分钟/秒数,还可以有9位小数秒。
blob:这种类型能够存储最多4GB的数据
clob:这种类型能够存储最多4GB的数据。当字符集发生转换时,这种类型会受到影响。
nclob:这种类型能够存储最多4GB的数据。当字符集发生转换时,这种类型会受到影响。
bfile:这种数据类型可以在数据库列中存储一个oracle目录对象和一个文件名,我们可以通过它来读取这个文件。
rowid:实际上是数据库表中行的地址,它有10字节长。
urowid:是一个通用的rowid,没有固定的rowid的表。