ORACLE 8i
数据类型
一.
字符型数据类型
数据类型
|
类 型 说 明
|
Char
|
长度1-2000字节
|
Nchar
|
依赖所使用的语种字符集,长度1-2000个字节
|
Varchar2
|
可变长度字符串,长度1-4000字符
|
Nvarchar2
|
依赖所使用的语种字符集,长度1-4000个字节
|
Varchar
|
在8i中与Varchar2相同。未来版本中不同
|
二.
数字型数据类型
Number(p,s)
P:最大数据精度,最大可达38位,若不定义此值,则ORACLE将根据数据大小自己来确定
S:小数点后小数位数,不定义此值,默认0;若s < 0 ,即number(*,-2) ,则表示数据精确到小数点左侧S位。
如:nubmer(5,-2),表示数据四舍五入到百位
三.
DATE
数据类型
数据类型
|
类 型 说 明
|
Date
|
按年(包括世纪)、月、日、小时、分钟、秒来描述时间。长度7个字节。Oracle存放时间范围从公元前4721年1月1日到公元4712年12月31日,其缺省格式是DD-MON-YY,DD表示日,MON表示月份的英文前三个字母,YY是年份,缺省是20世纪。 如:4-MAY-99
|
四.
LONG
数据类型
数据类型
|
类 型 说 明
|
LONG
|
也是字符型数据类型,用来存储变长字符串。最大长度2GB
可以和select 、update … set、insert…value语句来一起使用
|
使用限制
① 在一个表中定义为
long类型的列不能超过1列
② 不能对
LONG类型列加约束条件,如让其做主键(但NULL和NOT NULL除外)
③ 定义为
LONG类型的数据不能被索引
④ 不能将含有
LONG类型列的各表作聚簇
⑤
long类型列不能用查询其他表的方式来建立。如 create table as select,也不能用查询来插入数据,如:insert into … select
⑥
PL/SQL过程块的变量不能被定义为LONG
⑦
LONG类型不能被用于分布查询
⑧
LONG类型列不能用在where,group by ,order by , connect by子句以及带有DISTINCT操作的select语句
⑨
LONG类型列不能被SQL函数改变,如SUBSTR函数或INSTR函数
⑩ 不能在子查询的
select语句以及与另一个集合进行并,交,差操作的查询块中的select语句中使用LONG类型列
五.
二进制数据类型
数据类型
|
类 型 说 明
|
RAW
|
它和varchar2类型没什么两样,长度1-2000字节
|
LONG RAW
|
可以用来存储图像、视频、音频等大数据,最大长度2GB
|
六.
ROWID
数据类型
]
在创建表时,系统自动创建一个“逻辑列”,其类型就是ROWID,它指示了每一行所在的二进制物理地址。可以用SELECT语句来查询显示。
七.
MLSLABEL
数据类型
用来存放在安全OS中使用二进制标签,标签被Trusted Oracle用来为信息建立中间通道。若用的是标准Oracle服务器,则可以使用这种类型来定义列,最大宽度255字节。此类型是可变长的数据类型,任何一个合法的OS标签都可以插入到一个MLSLABEL中,ORACLE会将其内容转换成二进制形式
八.
大型对象数据类型
数据类型
|
类 型 说 明
|
C LOB
|
单个字符的字符集,最大长度4GB
|
NCLOB
|
多位数字符的字符大集,最大长度4GB
|
BLOB
|
大型二进制数据类型,最大长度4GB
|
BFILE
|
用来存储数据库外的大型二进制文件的输入指示器,它使得字节流I/O可存取置于数据库服务器的外部CLOB,最大长度4GB
|