Oracle数据类型(转)

Character 数据类型

Character 数据类型用来存储字母数字型数据。当你在oracle 中定义一个character 数据时,通常需要制定字段的长度,它是该字段的最大长度。ORACLE提供以下几种character 数据类型:

CHAR(<size>) CHAR数据类型是一种有固定长度和最大长度的字符串。存储在数据类型为CHAR字段中的数据将以空格的形式补到最大长度。长度定义在1——2000字节之间。

当你创建一个CHAR型字段,数据库将保证在这个字段中的所有数据是定义长度,如果某个数据比定义长度短,那么将用空格在数据的右边补到定义长度。如果长度大于定义长度将会触发错误信息。

VARCHAR(<size>) varchar型数据是varchar2型数据的快照。

VARCHAR2(<size>) varchar2数据类型是一种可变长度的、有最大长度的字母数字型数据。Varchar2类型的字段长度可以达到4000字节,Varchar2类型的变量长度可以达到32676字节。

 一个空的varchar2(2000)字段和一个空的varchar2(2)字段所占用的空间是一样的。

NCHAR(<size>) 和 NVARCHAR2(<size>) NCHAR(<size>) 和 NVARCHAR2(<size>)数据类型分别与CHAR(<size>) 和 VARCHAR2(<size>)类型是相同的,只不过它们用来存储NLS(National Language Support)数据。

LONG LONG 数据类型是一个遗留下来的而且在将来不会被支持的数据类型。它将被LOB(Large Object)数据类型所代替。

比较规则 Varchar2和char数据类型根据尾部的空格有不同的比较规则。对Char型数据,尾部的空格将被忽略掉,对于Varchar2型数据尾部带空格的数据排序比没有空格的要大些。比如:

       Char 型数据:              ‘YO’=‘YO     ’

       Varchar2型数据:           ‘YO’<’YO     ’

Numberic 数据类型

Numberic 数据类型用来存储负的和正的整数、分数和浮点型数据,范围在-1*10-103 和9.999…99*10125之间,有38位的精确度。标识一个数据超出这个范围时就会出错。

Number(<p>,<s>) Number数据类型存储一个有p位精确度的s位等级的数据。

DATE 数据类型

DATE 数据类型用来存储日期和时间格式的数据。这种格式可以转换为其他格式的数据去浏览,而且它有专门的函数和属性用来控制和计算。以下的几种信息都包含在DATE数据类型中:

Ø         Century

Ø         Year

Ø         Month

Ø         Day

Ø         Hour

Ø         Minute

Ø         Second

LOB 数据类型

   LOB(Large Object) 数据类型存储非结构化数据,比如二进制文件,图形文件,或其他外部文件。LOB 可以存储到4G字节大小。数据可以存储到数据库中也可以存储到外部数据文件中。LOB数据的控制通过DBMS_LOB 包实现。BLOB, NCLOB, 和CLOB 数据可以存储到不同的表空间中,BFILE存储在服务器上的外部文件中。LOB数据类型有以下几种:

Ø         BLOB: 二进制数据

Ø         CLOB: 字符型数据

Ø         BFILE: 二进制文件

其他数据类型
ROWID ROWID 数据类型是ORACLE数据表中的一个伪列,它是数据表中每行数据内在的唯一的标识。

oracle中的boolean数据类型仅限于PL/SQL,oracle本身没有默认的提供布尔型的存储方式

在设计数据库表结构时,选择一种高效的策略来存储一个可以在很多编程环境中使用的逻辑布尔值是非常重要的。(虽然 Oracle 没有 Boolean 数据类型来表示数据库字段,但是在 PL/SQL 中却具有 Boolean 数据类型。)

任何布尔定义的字段还应该被正确进行约束检查,以确保在插入/更新时输入了有效的值。

create table tbool (bool char check (bool in ('N','Y'));
insert into tbool values ('N');
insert into tbool values ('Y'); 

最常见的设计是模拟很多 Oracle 的数据字典视图中使用的类似布尔的标志,选择‘Y’表示真,‘N’表示假。然而,要正确地与宿主环境交互,比如与 JDBC、OCCI 和其它编程环境交互,最好选择0表示假,选择1表示真,从而使getBoolean 和setBoolean 能够正确地处理它们。

我们可以将一个布乐类型定义为 NUMBER(1);然而,在 Oracle 的内部数字格式中,0在长度字节之后占用一个字节,而1在长度字节之后占用两个字节(所以更加高效地方式是将其存储为 CHAR)。即使字符被定义为 CHAR,SQL 也可以转换和验证实际的数字。

create table tbool (bool char check (bool in (0,1));
insert into tbool values(0);
insert into tbool values(1);

时间: 2024-10-03 23:51:19

Oracle数据类型(转)的相关文章

SQL Server 和Oracle 数据类型对应

  SqlServer 2k转换为Oracle 10g 列名 SqlServer数据类型 SqlServer长度 Oracle数据类型 column1 bigint 8 NUMBER(19) column2 binary 50 RAW(50) column3 bit 1 NUMBER(2) column4 char 10 CHAR(10) column5 datetime 8 DATE column6 decimal 9 NUMBER(18) column7 float 8 BINARY_DOU

oracle数据类型

原文:oracle数据类型     oracle数据类型      有道是,磨刀不误砍柴工.多了解一些底层的东西,对于Oracle开发.维护大有裨益.个人总结了一些Oracle数据类型集解,相信读者阅读了本文以后,Oracle数据库开发起来会事半功倍! 在Oracle数据库中,每个关系表都由许多列组成.给每一列指派特定的数据类型来定义将在这个列中存储得数据类型. 1.CHAR最多可以以固定长度的格式存储2000个字符或字节.默认指定为以字符形式进行存储,这个数据类型是固定长度的,并且当位数不够时

Oracle 数据类型定义

Oracle数据类型 定义 CHAR <=2000 DATE Jan 1, 4712 B.C.到 Dec 31, 4712 A.D. DECIMAL 同 Number一样 FLOAT 同 Number一样 INTEGER 同 Number一样 LONG <=2GB LONG RAW Raw 数据:同 Long 一样 LONG VARCHAR 同 Long一样 NUMBER 1.0E-130到 9.99..E125 SMALLINT 同 Number一样 RAW 原始二进制数据 <=255

[20141009]oracle数据类型内部编码.txt

[20141009]oracle数据类型内部编码.txt --了解一些oracle内部数据类型的内部编码 SCOTT@test> select distinct type# from sys.col$ order by 1;   TYPE# -------       0       1       2       8      12      23      24      25      29      58      69      96     101     105     111  

Oracle 数据类型

oracle|数据|数据类型 数据类型参数描述char(n)n=1 to 2000字节定长字符串,n字节长,如果不指定长度,缺省为1个字节长(一个汉字为2字节)varchar2(n)n=1 to 4000字节可变长的字符串,具体定义时指明最大长度n,这种数据类型可以放数字.字母以及ASCII码字符集(或者EBCDIC等数据库系统接受的字符集标准)中的所有符号.如果数据长度没有达到最大值n,Oracle 8i会根据数据大小自动调节字段长度,如果你的数据前后有空格,Oracle 8i会自动将其删去.

oracle数据类型的学习笔记

一.数据类型 1.char char是一个定长字符串,会用空格填充来达到其最大长度.如果该列没有插入数据为null,插入数据没有到定义的长度,用空格填充. 2.nchar 这是一个包含unicode格式数据的定长字符串. 3.varchar2 目前这也是varchar的同义词.这是一个变长字符串,与char类型不同,它不会用空格填充至最大长度. 4.nvarchar2 这是一个包含unicode格式数据的变长字符串. 5.raw 这是一种变长二进制数据类型,这说明采用这种数据类型存储的数据不会发

[转]认识oracle数据类型

  http://www.blogjava.net/tacy/archive/2007/09/07/143485.html 作者:tacy lee 在设计数据库的时候,选择正确的数据类型,往往可以避免很多的问题,正确理解数据库的类型,对于存储空间规划,应用性能调整都会很有帮助,下面是我个人的一点总结:   1. Char 定长格式字符串,在数据库中存储时不足位数填补空格,不建议使用,会带来不必要的麻烦 a.  字符串比较的时候,如果不注意(char不足位补空格)会带来错误 b.  字符串比较的时

oracle数据类型varchar2和varchar的区别

varchar -- 存放定長的字符數據,最長2000個字符:varchar2 -- 存放可變長字符數據,最大長度為4000字符.   目前没有本质的区别 但是:varchar2是oracle提供的独特的数据类型oracle保证在任何版本中该数据类型向上和向下兼容但不保证varchar,这是因为varchar是标准sql提供的数据类型有可能随着sql标准的变化而改变   2: varchar2 VARCHAR2 Datatype The VARCHAR2 datatype specifies a

Oracle与DB2数据类型的分类对应说明

首先,通过下表介绍与DB2/400数据类型之间的对应关系,是一对多的关系,具体采用哪种对应关系,应具体问题具体分析. 注意事项: Oracle中的DATE含有年.月.日.时.分.秒,它和DB2/400中的DATE不相互对应,DB2/400中的DATE只有年.月.日,TIME类型含有时.分.秒,因此日期和时间类型要进行转换,请参照下表. Oracle DB2/400 Oracle数据类型 注意事项 DB2 UDB数据类型 注意事项 DATE   DATETIMETIMESTAMP l 如果只使用M