Oracle11g数据类型1.    字符类型
数据类型长度说明
CHAR(n BYTE/CHAR)默认1字节,n值最⼤为
2000
末尾填充空格以达到指定长度,超过最⼤长度报
错。默认指定长度为字节数,字符长度可以从1字
节到四字节。
NCHAR(n)默认1字符,最⼤存储内
容2000字节末尾填充空格以达到指定长度,n为Unicode字符数。默认为1字节。
NVARCHAR2(n)最⼤长度必须指定,最⼤
怎样测试oracle11g安装完成存储内容4000字节
变长类型。n为Unicode字符数
VARCHAR2(n BYTE/CHAR)最⼤长度必须指定,⾄少
为1字节或者1字符,n值
最⼤为4000
变长类型。超过最⼤长度报错。默认存储的是长度
为0的字符串。
VARCHAR同VARCHAR2不建议使⽤
2.    数字类型
数据类型长度说明
NUMBER(p[,s])1-22字节。
P取值范围1到38
S取值范围-84到127存储定点数,值的绝对值范围为1.0 x 10 -130⾄1.0 x 10 126。值⼤于等于1.0 x 10 126时报错。p 为有意义的10进制位数,正值s为⼩数位数,负值s表⽰四舍五⼊到⼩数点左部多少位。
BINARY_FLOAT5字节,其中有⼀长度字节。32位单精度浮点数类型。
符号位1位,指数位8位,尾数位23位。BINARY_DOUBLE9字节,其中有⼀长度字节。64位双精度浮点数类型。
3.    时间、时间间隔类型
时间字段可取值范围:
时间字段时间类型有效值时间间隔类型有效值
YEAR-4712⾄9999,包括0任何整数
MONTH01⾄120⾄11
DAY01⾄31任何整数
HOUR00 ⾄ 230 ⾄ 23
MINUTE00 ⾄ 590⾄ 59
SECOND00 to 59.9(n),9(n)不适⽤与DATE类型0 to 59.9(n)
TIMEZONE_HOUR-1⾄14,不适⽤与DATE和
TIMESTAMP类型
不可⽤
TIMEZONE_MINUTE00⾄59,不适⽤与DATE和
TIMESTAMP类型
不可⽤
TIMEZONE_REGION不可⽤
TIMEZONE_ABBR不可⽤
时间、时间间隔类型:
数据类型长度说明
DATE7字节默认值为SYSDATE的年、⽉,⽇为01。包含⼀
个时间字段,若插⼊值没有时间字段,则默认值
为:00:00:00 or 12:00:00 for 24-hour and 12-
hour clock time。没有分秒和时间区。
TIMESTAMP
[(fractional_seconds_precision)]7⾄11字节fractional_seconds_precision为Oracle存储秒值⼩数部分位数,默认为6,可选值为0到9。没有
时间区。
TIMESTAMP
[(fractional_seconds_precision)] WITH TIME ZONE 13字节使⽤UTC,包含字段YEAR, MONTH, DAY,
HOUR, MINUTE, SECOND, TIMEZONE_
HOUR, TIMEZONE_MINUTE
HOUR, TIMEZONE_MINUTE TIMESTAMP
[(fractional_seconds_precision)]
WITH LOCAL TIME ZONE
7⾄11字节存时使⽤数据库时区,取时使⽤回话的时区。[(year_precision)] TO MONTH年字段的数字位数,默认为2,可取0⾄9。
INTERVAL DAY
[(day_precision)]
TO SECOND
[(fractional_seconds_precision)]字节day_precision是⽉份字段的数字位数,默认为2,可取0⾄9。
1. TO_DATE()、DATE使⽤的时间字段值都是午夜值。或者使⽤TRUNC()函数进⾏过滤,确保时间字段为午夜值。
2. 时间和时间间隔类型操作规则:
在DATE和TIMESTAMP(会被转化为DATE类型值)类型上加、减NUMBER类型常量,该常量单位为天数。
所有TIMESTAMP类型运算都以UTC时间为准。即对于TIMESTAMP WITH LOCAL TIME ZONE来说,先转化为UTC时间,计算完成后再转化回来。
1. INTERVAL YEAR TO MONTH常量:
INTERVAL‘year-month’YEAR/MONTH(precision) TO MONTH
year位数超过precision时,返回⼀个错误。
其中precision为最⼤的位数,默认为2,可取0到9。
例⼦:INTERVAL '123-2' YEAR(3) TO MONTH 、
INTERVAL '123' YEAR(3) 、
INTERVAL '300' MONTH(3)。
1. INTERVAL DAY TO SECOND常量:
INTERVAL ‘n/time_expr/n time_expr’ DAY/HOUR/MINUTE(leading_precision)  TO
HOUR/MINUTE/SECOND(fractional_second_precision)
INTERVAL ‘n/time_expr’ SECOND(leading_precision, fractional_second_precision)
time_expr格式:HH[:MI[:SS[.n]]] or MI[:SS[.n]] or SS[.n] 若n⼤于分秒精度,则四舍五⼊n。
只有当第⼀个字段是DAY时,才可以使⽤n time_expr。
leading_precision默认为2,可取0⾄9。
4.    ⼤对象类型
数据类型长度说明
BLOB最⼤为(4GB-1)*数据库块⼤⼩存储⾮结构化⼆进制⽂件。⽀持事务处理。
CLOB最⼤为(4GB-1)*数据库块⼤⼩存储单字节或者多字节字符数据。⽀持事务处理。
NCLOB最⼤为(4GB-1)*数据库块⼤⼩存储Unicode数据。⽀持事务处理。
BFILE最⼤为2 32-1字节LOB地址指向⽂件系统上的⼀个⼆进制⽂件,维护⽬录
和⽂件名。不参与事务处理。只⽀持只读操作。
1. LOB列包含⼀个LOB地址,指向数据库内或者数据库外的LOB类型值。
5.    其他类型
数据类型长度说明
LONG最⼤为2GB变长类型,存储字符串。创建表时不要使⽤该类型。
RAW(n)最⼤2000字节,n为字
节数,必须指定n
变长类型,字符集发⽣变化时不会改变值。
LONG RAW最⼤为2GB变长类型,不建议使⽤,建议转化为BLOB类型,字符
集发⽣变化时不会改变值。
ROWID10字节代表记录的地址。显⽰为18位的字符串。⽤于定位数据
库中⼀条记录的⼀个相对唯⼀地址值。通常情况下,该
值在该⾏数据插⼊到数据库表时即被确定且唯⼀。
UROWID(n)
1. ROWID:数据对象编号32位(6个字符)、⽂件编号10位(3个字符)、块编号22位(6个字符)、⾏编号16位(3个字符)
2. 使⽤dqms_rowid包获得ROWID信息:
select wid_object(rowid) object_id,                wid_relative_fno(rowid)
file_id,                                                                  wid_block_number(rowid) block_id,                                                                wid_row_number(rowid) num                                                                          from dept;