Oracle 11g 数据类型

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。

  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类型,字符集发生变化时不会改变值。


ROWID


10字节


代表记录的地址。显示为18位的字符串。用于定位数据库中一条记录的一个相对唯一地址值。通常情况下,该值在该行数据插入到数据库表时即被确定且唯一。


UROWID(n)

  1. ROWID:数据对象编号32位(6个字符)、文件编号10位(3个字符)、块编号22位(6个字符)、行编号16位(3个字符)
  2. 使用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;

时间: 2024-11-01 23:16:03

Oracle 11g 数据类型的相关文章

Oracle 11g 导出数据报 “ORA-01455: 转换列溢出整数数据类型”的问题

最近发现云服务器上的Oracle 11g在导出时报错,如下: ... . 正在导出后期表活动. 正在导出实体化视图. 正在导出快照日志EXP-00008: 遇到 ORACLE 错误 1455ORA-01455: 转换列溢出整数数据类型EXP-00000: 导出终止失败 从网上搜了半天,有很多种说法:1. 版本问题,说10g的导出11g的就有这个问题,但是我的客户端和服务器采用的是相同的版本,所以不存在版本问题.有的还说是32位和64位的问题,我的Oracle是32位,客户端也是32位,同一台设备

Oracle 11g数据库详解(2015-1-18更新)

Oracle 11g数据库详解 整理者:高压锅 QQ:280604597 Email:[email protected] 大家有什么不明白的地方,或者想要详细了解的地方可以联系我,我会认真回复的 1   简介 数据库操作主要有以下几步: 1.  启动.停止数据库 2.  连接.断开数据库 3.  创建.修改.删除数据库用户 4.  表空间 5.  新建.修改.删除表 6.  查询.插入.修改.删除表数据 7.  新建.修改.删除视图 8.  新建.修改.删除存储过程 9.  新建.修改.删除触发

ORACLE 11G DataGuard的一些高级管理案例研究

搭建完了ORACLE 11G dataguard后,也做了角色切换的实验,有switchover已经failover,感觉受益颇多,而后继续研究了下dataguard的一些高级管理功能,所谓冰山一角,ORACLE果然博大精深,总结记录如下:1,ORACLE 11G dataguard的高级管理1.1.READ ONLY/WRITE模式打开物理STANDBY一般standby都是可以设置为mount状态的,于物理standby 可以有效分担primary 数据库压力,提升资源利用,实际上说的就是这

【Oracle】Oracle基本数据类型总结

ORACLE基本数据类型(亦叫内置数据类型 built-in datatypes)可以按类型分为:字符串类型.数字类型.日期类型.LOB类型.LONG RAW& RAW类型.ROWID & UROWID类型. 在讲叙字符串类型前,先要讲一下编码.字符串类型的数据可依编码方式分成数据库字符集(CHAR/VARCHAR2/CLOB/LONG)和国际字符集(NCHAR/NVARCHAR2/NCLOB)两种.数据库中的字符串数据都通过字符集将字符转换为数字后(二进制),才存储到数据块中.通过不同的

Oracle 11g数据库详解(2015-02-28更新)

Oracle 11g数据库详解 整理者:高压锅 QQ:280604597 Email:[email protected] 大家有什么不明白的地方,或者想要详细了解的地方可以联系我,我会认真回复的 1   简介 数据库操作主要有以下几步: 1.  启动.停止数据库 2.  连接.断开数据库 3.  创建.修改.删除数据库用户 4.  表空间 5.  新建.修改.删除表 6.  查询.插入.修改.删除表数据 7.  新建.修改.删除视图 8.  新建.修改.删除存储过程 9.  新建.修改.删除触发

使用Oracle Sql Developer将SQL SERVER 2008数据库移植到Oracle 11g

ORACLE官方提供的Sql Developer自带的Oracle Migration Workbench. 什么是Oracle SQL Developer?在官方页面上,是这样介绍它的: Oracle SQL Developer is a free and fully supported graphical tool for database development. With SQL Developer, you can browse database objects, run SQL st

ORACLE 11G 之DATAGUARD搭建逻辑standby

Oracle Data Guard逻辑备库是利用主库的一个备份首先建立一个物理备库,然后再将其转换为逻辑备库.这之后主库将日志传递到备库,备库利用logminer从主库的日志中解析出主库所执行过的SQL,在备库上重新执行一遍,从而保证与主库的数据在逻辑上保持一致.与物理备库相对应的是,物理备库使用的是redo apply,逻辑备库使用的是sql apply.因此逻辑备库仅仅保证数据与主库是在逻辑上是一致的,从而逻辑备库可以处于open状态下并进行相应的DML操作. 在转换physical备库到l

oracle 11g 新增分区

oracle 11g新增了间隔分区.虚拟列分区和引用分区.详细的介绍请查看官方文件: Creating Partitions 1. 间隔分区 间隔分区是范围分区的一种扩展.在引入间隔分区之前,DBA 需要显式定义每个分区的值范围,随着分区值的增长可用分区会逐渐减少直到没有可使用的分区为止.而间隔分区就是为了解决插入表中的数据超过了所有范围分区时而不能自动创建分区的问题.必须至少创建一个范围分区,范围分区的键值确定范围分区的上限值,超过该上限值数据库服务器自动创建特定间隔的分区.主要用在可预知的添

centos 6 oracle 11G DB install

因业务迁移,需重新部署oracle DB,此文仅作部署记录,部署文档主要参考官方文档http://docs.oracle.com/cd/E11882_01/install.112/e47689/toc.htm 概要: 主机:OpenStack 云主机 系统:Completing a Minimal Linux centos 6.8 x86_64 DB:Oracle Database 11g Release 2(11.2) 内存:2Gb 硬盘:/dev/vda 20Gb /dev/vdb 30Gb