Oracle10g数据类型总结|数据库|码途山海.智隐长卷 -

程序人生|重庆纽新

找回密码
立即注册

QQ登录

只需一步,快速开始

欢迎访问【程序人生-重庆纽新】,本网站为软件开发人员视觉的IT资讯、软件开发中各种问题的解决办法!!
搜索
发新帖


2308

积分

0

好友

259

主题
楼主
发表于 2015-7-14 15:09:14 | 查看: 978| 回复: 0


1.     字符类型
数据类型
长度
说明
CHAR(n BYTE/CHAR)
默认1字节,n值最大为2000
末尾填充空格以达到指定长度,超过最大长度报错。默认指定长度为字节数,字符长度可以从1字节到四字节。
NCHAR(n)
默认1字符,最大存储内容2000字节
末尾填充空格以达到指定长度,n为Unicode字符数。默认为1字节。
NVARCHAR2(n)
最大长度必须指定,最大存储内容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_FLOAT
5字节,其中有一长度字节。
32位单精度浮点数类型。
符号位1位,指数位8位,尾数位23位。
BINARY_DOUBLE
9字节,其中有一长度字节。
64位双精度浮点数类型。
3.     时间、时间间隔类型
时间字段可取值范围:
时间字段
时间类型有效值
时间间隔类型有效值
YEAR
-4712至9999,包括0
任何整数
MONTH
01至12
0至11
DAY
01至31
任何整数
HOUR
00 至 23
0 至 23
MINUTE
00 至 59
0至 59
SECOND
00 to 59.9(n),9(n)不适用与DATE类型
0 to 59.9(n)
TIMEZONE_HOUR
-1至14,不适用与DATE和TIMESTAMP类型
不可用
TIMEZONE_MINUTE
00至59,不适用与DATE和TIMESTAMP类型
不可用
TIMEZONE_REGION

不可用
TIMEZONE_ABBR

不可用

时间、时间间隔类型:
数据类型
长度
说明
DATE
7字节
默认值为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
TIMESTAMP [(fractional_seconds_precision)] WITH LOCAL TIME ZONE
7至11字节
存时使用数据库时区,取时使用回话的时区。
INTERVAL YEAR [(year_precision)] TO MONTH
5字节
包含年、月的时间间隔类型。year_precision是年字段的数字位数,默认为2,可取0至9。
INTERVAL DAY [(day_precision)]
TO SECOND [(fractional_seconds_precision)]
11字节
day_precision是月份字段的数字位数,默认为2,可取0至9。
  • TO_DATE()、DATE使用的时间字段值都是午夜值。或者使用TRUNC()函数进行过滤,确保时间字段为午夜值。
  • 时间和时间间隔类型操作规则:
在DATE和TIMESTAMP(会被转化为DATE类型值)类型上加、减NUMBER类型常量,该常量单位为天数。
所有TIMESTAMP类型运算都以UTC时间为准。即对于TIMESTAMP WITH LOCAL TIME ZONE来说,先转化为UTC时间,计算完成后再转化回来。
  • 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)。
  • 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地址指向文件系统上的一个二进制文件,维护目录和文件名。不参与事务处理。只支持只读操作。

  • LOB列包含一个LOB地址,指向数据库内或者数据库外的LOB类型值。
5.     其他类型
数据类型
长度
说明
LONG
最大为2GB
变长类型,存储字符串。创建表时不要使用该类型。
RAW(n)
最大2000字节,n为字节数,必须指定n
变长类型,字符集发生变化时不会改变值。
LONG RAW
最大为2GB
变长类型,不建议使用,建议转化为BLOB类型,字符集发生变化时不会改变值。
ROWID
10字节
代表记录的地址。显示为18位的字符串。用于定位数据库中一条记录的一个相对唯一地址值。通常情况下,该值在该行数据插入到数据库表时即被确定且唯一。
UROWID(n)


  • ROWID:数据对象编号32位(6个字符)、文件编号10位(3个字符)、块编号22位(6个字符)、行编号16位(3个字符)
  • 使用dqms_rowid包获得ROWID信息:
select dbms_rowid.rowid_object(rowid) object_id, dbms_rowid.rowid_relative_fno(rowid) file_id, dbms_rowid.rowid_block_number(rowid) block_id, dbms_rowid.rowid_row_number(rowid) num
from dept;



收藏回复 只看该作者 道具 举报

高级模式
B Color Image Link Quote Code Smilies



QQ|小黑屋| 码途山海.智隐长卷 渝ICP备15002301号-2   渝公网安备50011202504426

GMT+8, 2025-5-18 01:46 , Processed in 0.040810 second(s), 24 queries .

©Copyright 程序人生!

©2012-2015重庆纽新

快速回复 返回顶部 返回列表