Oracle数据类型
在本教程中,您将了解内置Oracle数据类型的概述。
Oracle数据类型简介
在Oracle中,每个值都有一个数据类型,它定义了一组值。 这些特征导致Oracle将一种数据类型的值与另一种数据类型的值区分开来。 例如,您可以添加数据类型的值,但不能添加原始数据类型的值。
当创建一个新表时,可以为每个列指定一个数据类型。 同样,当创建一个新的过程时,要为它的每个参数指定一个数据类型。 数据类型定义每个列或参数可以存储的允许值。 例如,列不能存储2月30日的值,因为这不是有效的日期。
Oracle具有下表中所示的一些内置数据类型:
代码 | 数据类型 |
---|---|
1 | VARCHAR2(size [BYTE / CHAR]) |
1 | NVARCHAR2(size) |
2 | |
8 | LONG |
12 | DATE |
22 | BINARY_DOUBLE |
23 | RAW(size) |
24 | LONG RAW |
69 | ROWID |
96 | CHAR [(size [BYTE / CHAR])] |
96 | NCHAR[(size)] |
112 | CLOB |
112 | NCLOB |
113 | BLOB |
114 | BFILE |
180 | TIMESTAMP [(fractional_seconds)] |
181 | TIMESTAMP [(fractional_seconds)] WITH TIME ZONE |
182 | INTERVAL YEAR [(year_precision)] TO MONTH |
183 | INTERVAL DAY [(day_precision)] TO SECOND[(fractional_seconds)] |
208 | UROWID [(size)] |
231 | TIMESTAMP [(fractional_seconds)] WITH LOCAL TIMEZONE |
每种数据类型都有由Oracle内部管理的代码。要查找列中值的数据类型代码,请使用DUMP()函数。
1. 字符数据类型
字符数据类型由:,NCHAR,VARCHAR2,NVARCHAR2和VARCHAR组成。NCHAR和NVARCHAR2数据类型用于存储Unicode字符串。
固定长度字符数据类型是CHAR,NCHAR,可变长度字符数据类型是:VARCHAR2和NVARCHAR2。
VARCHAR是VARCHAR2的同义词。 但是,不建议使用VARCHAR,因为Oracle将来可能会更改它的语义。
对于字符数据类型,可以用字节或字符指定它们的大小。
2. 数字数据类型
NUMBER数据类型具有精度p和比例s。精度范围从1到38,范围从-84到127。
如果不指定精度,那么该列可以存储包括定点数和浮点数的值。比例的默认值是零。
3. 日期时间和时间间隔数据类型
日期时间数据类型是,,和TIMESTAMP WITH LOCAL TIME ZONE。 日期时间数据类型的值是日期时间。
区间数据类型为和。 区间数据类型的值是区间。
4. RAW和LONG RAW数据类型
RAW和LONG RAW数据类型用于存储二进制数据或字节字符串,例如文档,声音文件和视频文件的内容。
RAW数据类型最多可以存储2000字节,而LONG RAW数据类型最多可以存储2GB。
5. BFILE数据类型
BFILE数据类型将定位器存储到位于数据库之外的大型二进制文件。 定位器由目录和文件名组成。
6. BLOB数据类型
BLOB代表二进制大对象。可以使用BLOB数据类型来存储最大大小为(4千兆字节 - 1)*(数据库块大小)的二进制对象。
7. CLOB数据类型
CLOB代表字符大的对象。使用CLOB存储单字节或多字节字符,最大大小为(4千兆字节 - 1)*(数据库块大小)。
请注意,CLOB支持固定字符集和变量字符集。
8. NCLOB数据类型
NCLOB与CLOB类似,不同的是它可以存储Unicode字符。
9. UROWID数据类型
UROWID主要用于ROWID伪列返回的值。它的值是基本的64个字符串,它们表示表中行的唯一地址。
10. 数据类型:Oracle和ANSI
将ANSI数据类型用于列定义时,Oracle将根据以下映射表将Oracle转换为其相应的数据类型:
ANSI SQL数据类型 | Oracle SQL数据类型 |
---|---|
CHARACTER(n), CHAR(n) | CHAR(n) |
CHARACTER VARYING(n), CHAR VARYING(n) | VARCHAR2(n) |
NATIONAL CHARACTER(n), NATIONAL CHAR(n), NCHAR(n) | NCHAR(n) |
NATIONAL CHARACTER VARYING(n), NATIONAL CHAR VARYING(n), NCHAR VARYING(n) | NVARCHAR2(n) |
NUMERIC(p,s), DECIMAL(p,s) (a) | NUMBER(p,s) |
INTEGER, INT, SMALLINT | |
FLOAT (b), DOUBLE PRECISION (c), REAL (d) |