oracle数据类型
字符型
char 固定字符,最长2000个--char默认值是char(1)
varchar2 可变长字符,最长4000个,最小值是1--VARCHAR2 数据类型必须要指定 size
nchar/nvarchar2 NCHAR/NVARCHAR2类型的列使用国家字符集
raw和long raw 固定/可变长度的二进制数据长度 最长2G,可存放多媒体图象声音等。(老类型,逐步淘汰)LONG 可变长的字符串数据,最长2G,LONG具有VARCHAR2列的特性,一个表中最多一个LONG列。(老类型,逐步淘汰)。
数值型:
number(p,s) 实数类型,以可变长度的内部格式来存储数字。这个内部格式精度可以高达38位。
int 整数型,number的子类型,范围同上
日期型(需要时间段可以用INTERVAL函数):
date 日期的普通形式,表示精度只能到秒级。(英文版本的ORACLE中默认日期格式为'DD-MON-YY'→'1-JAN-00'; )
timestamp 日期的扩展形式,表示精度可达秒后小数点9位(10亿分之1秒)。
timestamp with timezone 带时区
timestamp with local timezone 时区转换成本地时间
系统安装后,默认日期格式是DD-MON-RR, RR和YY都是表示两位年份,但RR是有世纪认知的,它将指定日期的年份和当前年份比较后确定年份是上个世纪还是本世纪(如表)。
LOB型:大对象是10g 引入的,在11g中又重新定义,在一个表的字段里存储大容量数据,所有大对象最大都可能达到4G
CLOB: 用来存储单字节的字符数据,包含在数据库内。
NCLOB:用来存储多字节的字符数据
BLOB:用于存储二进制数据,包含在数据库内。
BFILE:存储在数据库之外的二进制文件中,这个文件中的数据只能被只读访问。
bfile字段实际的文件存储在文件系统中,字段中存储的是文件定位指针.bfile对oracle来说是只读的,也不参与事务性控制和数据恢复.
CLOB,NCLOB,BLOB都是内部的LOB类型,最长4G,没有LONG只能有一列的限制。
保存图片或电影使用BLOB最好,LONG RAW 也不错,但Long是oracle将要废弃的类型,因此建议用 BLOB.
如果是小说则使用CLOB最好。
虽然LONG RAW也可以使用,但LONG是oracle将要废弃的类型,因此建议用LOB。
当然说将要废弃,但还没有完全废弃,比如oracle 11g里的重要视图dba_views,对于text(视图定义)仍然沿用了LONG类型。
Oracle 11g重新设计了大对象,推出SecureFile Lobs的概念,相关的参数是db_securefile,采用SecureFile Lobs的前提条件是11g以上版本,ASSM管理等,符合这些条件的BasicFile Lobs也可以转换成SecureFile Lobs。较之过去的BasicFile Lobs, SecureFile Lobs有几项改进:
1)压缩,2)去重,3)加密。
当create table定义LOB列时,也可以使用LOB_storage_clause指定SecureFile Lobs或BasicFile Lobs
而LOB的数据操作则使用Oracle提供的DBMS_LOB包,通过编写PL/SQL块完成LOB数据的管理。