Oracle提供了22种不同的SQL数据类型供我们使用。简要地讲,执行数据类型如下:
CHAR:这是一个定长字符串,会用空格填充来达到其最大长度。非null的CHAR(12.)总是包含12.字节信息(使用了默认国家语言支持NationalLanguageSupport,NLS设置)。稍后将更详细地介绍NLS的作用。CHAR字段最多可以存储2,000字节的信息。
NCHAR:这是一个包含UNICODE格式数据的定长字符串。Unicode是一种对字符进行编码的通用方法,而不论使用的是何种计算机系统平台。有了NCHAR类型,就允许数据库中包含采用
两种不同字符集的数据:使用数据库字符集的CHAR类型和使用国家字符集的NCHAR类型。非null的NCHAR(12.)总是包含12.个字符的信息(注意,在这方面,它与CHAR类型有所不同)。NCHAR字段最多可以存储2,000字节的信息。
VARCHAR2:目前这也是VARCHAR的同义词。这是一个变长字符串,与CHAR类型不同,它不会用空格填充至最大长度。VARCHAR2(12.)可能包含0~12.字节的信息(使用默认NLS设置)。VARCHAR2最多可以存储4,000字节的信息。
NVARCHAR2:这是一个包含UNICODE格式数据的变长字符串。NVARCHAR2(12.)可以包含0~12.字符的信息。NVARCHAR2最多可以存储4,000字节的信息。
RAW:这是一种变长二进制数据类型,这说明采用这种数据类型存储的数据不会发生字符集转换。可以把它看作由数据库存储的信息的二进制字节串。这种类型最多可以存储2,000字节的信息。
NUMBER:这种数据类型能存储精度最多达38位的数字。这些数介于12.0×12.(-130)——(但不包括)12.0×12.(126)之间。每个数存储在一个变长字段中,其长度在0(尾部的NULL列就是0字节)~22字节之间。Oracle的NUMBER类型精度很高,远远高于许多编程语言中常规的FLOAT和DOUBLE类型。
BINARY_FLOAT:这是Oracle10gRelease1及以后版本中才有的一种新类型。它是一个32位单精度浮点数,可以支持至少6位精度,占用磁盘上5字节的存储空间。
LONG:这种类型能存储最多2G的字符数据(2GB是指2千兆字节,而不是2千兆字符,因为在一个多字节字符集中,每个字符可能有多个字节)。由于LONG类型有许多限制(后面会讨论),而且提供LONG类型只是为了保证向后兼容性,所以强烈建议新应用中不要使用LONG类型,而且在现有的应用中也要尽可能将LONG类型转换为CLOB类型。
LONGRAW:LONGRAW类型能存储多达2GB的二进制信息。由于LONG同样的原因,建议在将来的所有开发中都使用CLOB类型,另外现有的应用中也应尽可能将LONGRAW转换为BLOB类型。
DATE:这是一个7字节的定宽日期/时间数据类型。其中总包含7个属性,包括:世纪、世纪中哪一年、月份、月中的哪一天、小时、分钟和秒。
TIMESTAMP:这是一个7字节或12.字节的定宽日期/时间数据类型。它与DATE数据类型不同,因为TIMESTAMP可以包含小数秒(fractionalsecond);带小数秒的TIMESTAMP在小数点右边最多可以保留9位。
TIMESTAMPWITHTIMEZONE:与前一种类型类似,这是一个12.字节的定宽TIMESTAMP,不过它还提供了时区(TIMEZONE)支持。数据中会随TIMESTAMP存储有关时区的额外信息,所以原先插入的TIMEZONE会与数据一同保留。
TIMESTAMPWITHLOCALTIMEZONE:与TIMESTAMP类似,这是一种7字节或12.字节的定宽日期/时间数据类型;不过,这种类型对时区敏感(timezonesensitive)。如果在数据库中有修改,会参考数据中提供的TIMEZONE,根据数据库时区对数据中的日期/时间部分进行“规范化”。所以,如果你想使用U.S./Pacific时区插入一个日期/时间,而数据库时区为U.S./Eastern,最后的日期/时间信息会转换为Eastern时区的日期/时间,并像TIMESTAMP一样存储。获取这个数据时,数据库中存储的TIMESTAMP将转换为会话时区的时间。
INTERVALYEARTOMONTH:这是一个5字节的定宽数据类型,用于存储一个时间段,这个类型将时段存储为年数和月数。可以在日期运算中使用这种时间间隔使一个DATE或TIMESTAMP
类型增加或减少一段时间。
INTERVALDAYTOSECOND:这是一个12.字节的定宽数据类型,用于存储一个时段,这个类型将时段存储为天/小时/分钟/秒数,还可以有最多9位的小数秒。
BFILE:这种数据类型允许在数据库列中存储一个Oracle目录对象(操作系统目录的一个指针)和一个文件名,并读取这个文件。这实际上允许你以一种只读的方式访问数据库服务器
上可用的操作系统文件,就好像它们存储在数据库表本身中一样。
BLOB:在Oracle9i及以前的版本中,这种数据类型允许存储最多4GB的数据,在Oracle10g及以后的版本中允许存储最多(4GB)×(数据库块大小)字节的数据。BLOB包含不需要进行字符集转换的“二进制“数据,如果要存储电子表格、字处理文档、图像文件等就很适合采用这种数据类型。
CLOB:在Oracle9i及以前的版本中,这种数据类型允许存储最多4GB的数据,在Oracle10g及以后的版本中允许存储最多(4GB)×(数据库块大小)字节的数据。CLOB包含要进行字符集转换的信息。这种数据类型很适合存储纯文本信息。
NCLOB:在Oracle9i及以前的版本中,这种数据类型允许存储最多4GB的数据,在Oracle10g及以后的版本中允许存储最多(4GB)×(数据库块大小)字节的数据。NCLOB存储用数据库国家字符集编码的信息,而且像CLOB一样,这些信息要进行字符集转换。
ROWID:ROWID实际上是数据库中一行的12.字节地址。ROWID中编码有足够的信息,足以在磁盘上定位这一行,以及标识ROWID指向的对象(表等)。
UROWID:UROWID是一个通用ROWID,用于表(如IOT和通过异构数据库网关访问的没有固定ROWID的表)。UROWID是行主键值的一种表示,因此,取决于所指向的对象,UROWID的大小会有所变化。
分享到:
相关推荐
### Oracle 数据类型详解 #### 4.1 Oracle 数据类型 ##### 4.1.1 概述 在深入了解Oracle数据库中的各种数据类型之前,我们首先需要明确数据类型的基本概念。数据类型是由一组具有相同特性的值及其上定义的操作...
#### 23.1 概述:Oracle中的日期时间数据类型 在Oracle数据库中,日期时间数据类型主要包括`DATE`、`TIMESTAMP`及其变体(如`TIMESTAMP WITH TIME ZONE`、`TIMESTAMP WITH LOCAL TIME ZONE`)以及`INTERVAL`数据...
### Oracle 数据类型详解 #### 一、概述 Oracle 数据库提供了丰富的数据类型,这些类型能够满足各种业务场景的需求。在数据库设计中合理选择数据类型对于提高数据库性能、减少存储空间和确保数据一致性等方面都至...
### Oracle基本数据类型详解 #### 一、概述 Oracle 数据库提供了多种数据类型来满足不同的需求,这些数据类型包括字符型、数值型、日期时间型、大对象类型等。了解这些基本数据类型对于正确设计数据库表结构至关...
本章主要探讨Oracle中的数据类型,包括概述、字符数据类型、数值数据类型、日期类型以及其他特殊类型。 4.1.1 数据类型的概述 数据类型是数据库中用于定义字段(列)的格式和允许值的一种规范。它决定了数据的种类...
### Oracle数据类型概述 - **字符类型:** - `CHAR`: 固定长度的字符类型,默认长度为1字节。 - `NCHAR`: NLS字符类型,支持Unicode编码,每个字符占用2字节。 - `VARCHAR2`: 变长字符类型,最大长度可达4000字节...
### Oracle和DB2的数据类型比较 #### 一、概述 本文旨在对比Oracle和DB2/400数据库管理系统中的数据类型,并重点分析日期和时间类型的差异。由于Oracle和DB2/400在数据类型的定义和实现上存在差异,因此在进行...
### Oracle 数据类型之 Number #### 一、概述 在Oracle数据库中,`NUMBER`类型是一种极为重要的数值数据类型,主要用于存储各种数值数据。随着Oracle版本的发展,为了更好地满足用户需求和提升性能,Oracle在其...
Oracle提供了多种类型的表空间,如System表空间(存储系统对象)、Rollback表空间(存储回滚段)和Temp表空间(存储临时数据)。 2. **段**:段是数据库对象(如表、索引)在表空间内的存储单元,由一系列连续的...
#### 二、Oracle 数据类型概述 Oracle 支持多种数据类型,这些数据类型被用于定义表中的列或变量的类型。正确选择数据类型可以显著提高数据库性能,并有助于确保数据的一致性和完整性。 ##### 1. 常用数据类型 - **...
### Oracle 数据类型详解 #### 一、概述 Oracle 数据库是一种广泛使用的数据库管理系统,它支持多种数据类型以满足不同业务场景的需求。数据类型的选择对于确保数据的准确存储和高效处理至关重要。本文将详细介绍 ...
根据复制过程中数据同步的方向和方式,Oracle数据复制可以分为以下几种主要类型: - **单向复制:** 数据仅从一个源数据库流向一个或多个目标数据库。 - **双向复制:** 数据可以在两个或多个数据库之间相互流动。 ...
#### 一、Oracle 数据块概述 Oracle 数据库是业界领先的数据库管理系统之一,其高效的数据管理机制使得它能够在多种环境中提供稳定且高性能的服务。Oracle 数据库中,最基本的数据管理单位是数据块(datablock),...
### Oracle8i概述 #### 一、Oracle8i简介与特点 Oracle8i是Oracle公司推出的第八代数据库管理系统,它不仅继承了Oracle以往版本的强大功能,还在互联网技术方面进行了重大改进,增强了对Web应用的支持。Oracle8i在...
#### 一、Oracle 数据字典概述 Oracle 数据字典是存储关于数据库元数据信息的特殊集合,这些信息包括表、视图、索引、用户权限等。对于数据库管理员(DBA)以及开发人员来说,理解和掌握数据字典是非常重要的。它...
#### 一、Oracle RMAN 概述 RMAN (Recovery Manager) 是 Oracle 提供的一种强大而灵活的数据备份、恢复工具,它可以帮助数据库管理员执行各种复杂的备份与恢复操作。通过 RMAN,可以有效地管理 Oracle 数据库的备份...
`%TYPE`关键字表示变量的数据类型与所引用的表列数据类型相同。 #### 插入数据 插入数据到表中可以通过简单的`INSERT`语句实现: ```sql DECLARE v_deptno dept.deptno%TYPE; v_dname dept.dname%TYPE; BEGIN ...
Oracle数据库架构概述主要涵盖物理存储结构和逻辑存储结构两大部分,这是理解Oracle数据库运作机制的关键。物理存储结构涉及可以直接通过操作系统访问的文件,包括联机重做日志文件、控制文件、参数文件、口令文件、...
Oracle数据库是基于SQL标准的,它支持大量的数据类型,包括数值、字符串、日期、二进制和复杂对象类型。它使用表、视图、索引等数据结构来组织和存储数据。Oracle还提供了强大的安全性机制,包括用户权限、角色和...