以下是 Oracle 和 PLSQL中支持的数据类型的列表。我们还列出了在 Oracle 8i 同 Oracle 9i中所支持数据类型的差别:
数据类型标识符 |
Oracle 8i |
Oracle 9i |
解释 |
dec(p, s) |
最大精确度是38位 |
最大精确度是38位 |
p是精确度,s是范围 例如:dec(3,1)是指这样一个数字:小数点前2位数字,小数点后1位数字 |
decimal(p, s) |
最大精确度是38位 |
最大精确度是38位 |
p是精确度,s是范围 例如:decimal(3,1)是指这样一个数字:小数点前2位数字,小数点后1位数字 |
double precision |
|
|
|
float |
|
|
|
int |
|
|
|
integer |
|
|
|
numeric(p, s) |
最大精确度是38位 |
最大精确度是38位 |
p是精确度,s是范围 例如:numeric (7,2)是指这样一个数字:小数点前5位数字,小数点后2位数字 |
number(p, s) |
最大精确度是38位 |
最大精确度是38位 |
p是精确度,s是范围 例如:numeric (7,2)是指这样一个数字:小数点前5位数字,小数点后2位数字 |
real |
|
|
|
smallint |
|
|
|
char (size) |
最多 32767 个字节在 PLSQL中 最多 2000 个字节在 Oracle 8i中 |
最多 32767 个字节在 PLSQL中 最多 2000 个字节在 Oracle 9i中 |
size是存储的字符数 定长字符串,空格填充 |
varchar2 (size) |
最多 32767 个字节在 PLSQL中 最多 4000 个字节在 Oracle 8i中 |
最多 32767 个字节在 PLSQL中 最多 4000 个字节在 Oracle 9i中 |
size是存储的字符数 变长字符串 |
long |
最多二十亿字节 |
最多二十亿字节 |
变长字符串(向后兼容) |
raw |
最多 32767 个字节在 PLSQL中 最多 2000 个字节在 Oracle 8i中 |
最多 32767 个字节在 PLSQL中 最多 2000 个字节在 Oracle 9i中 |
变长二进制字符串 |
long raw |
最多二十亿字节 |
最多二十亿字节 |
变长二进制字符串(向后兼容) |
date |
从公元前 4712 年1月1日 至 公元 9999 年12月31日 |
从公元前 4712 年1月1日 至 公元 9999 年12月31日 |
|
timestamp (fractional seconds precision) |
Oracle 8i 不支持 |
fractional seconds precision 必须是0 到 9的数 (默认是 6) |
包括年、月、日、时、分、秒 例如: timestamp(6) |
timestamp (fractional seconds precision) with time zone |
Oracle 8i 不支持 |
fractional seconds precision 必须是0 到 9的数 (默认是 6) |
包括年、月、日、时、分、秒。包括一个时区置换值 例如: timestamp(5) with time zone |
timestamp (fractional seconds precision) with local time zone |
Oracle 8i 不支持 |
fractional seconds precision 必须是0 到 9的数 (默认是 6) |
包括年、月、日、时、分、秒。 time zone 表示绘画时区 例如:timestamp(4) with local time zone |
interval year |
Oracle 8i 不支持 |
fractional seconds precision 必须是0 到 9的数 (默认是 2) |
按年月存储时间段 例如: |
interval day |
Oracle 8i 不支持 |
day precision必须是0 到 9的数 (默认是 2) fractional seconds precision必须是0 到 9的数 (默认是 6) |
按日、时、分、秒保存时间段 例如: |
rowid |
rowid 的格式如下:: BBBBBBB是数据库文件中的块 RRRR是块中的行 FFFFF是数据库文件 |
rowid 的格式如下:: BBBBBBB是数据库文件中的块 RRRR是块中的行 FFFFF是数据库文件 |
定长二进制数据 数据库中的每一条记录都有一个物理地址或者一个rowid
|
urowid [size] |
最多2000 个字节 |
最多2000 个字节 |
通用(Universal) rowid. Size可选 |
boolean |
PLSQL中可用, 但 Oracle 8i中无此数据类型 |
PLSQL中可用, 但 Oracle 9i中无此数据类型 |
|
nchar (size) |
最多 32767 个字节在 PLSQL中 最多 2000 个字节在 Oracle 8i中 |
最多 32767 个字节在 PLSQL中 最多 2000 个字节在 Oracle 9i中 |
Size是所存储的字符数 定长NLS 字符串 |
nvarchar2 (size) |
最多 32767 个字节在 PLSQL中 最多 4000 个字节在 Oracle 8i中 |
最多 32767 个字节在 PLSQL中 最多 4000 个字节在 Oracle 9i中 |
Size是所存储的字符数 变长NLS 字符串 |
bfile |
最多四十亿字节 |
最多四十亿字节 |
文件位置(locators)指向一个数据库外的只读二进制对象 |
blob |
最多四十亿字节 |
最多四十亿字节 |
LOB locators 指向一个数据库内的大二进制对象 |
clob |
最多四十亿字节 |
最多四十亿字节 |
LOB locators 指向一个数据库内的大字符对象 |
nclob |
最多四十亿字节 |
最多四十亿字节 |
LOB locators 指向一个数据库内的大NLS字符对象that |