[转] Oracle数据类型

ORACLE8中定了:(Scalar)(COMPOSITE)引用(REFERENCE)LOB数据型。
(一)(Scalar)
型与数据的列所使用的型相同,此外它有一些展。
它又分七个数字字符日期标识可信
①数字 有三基本:NUMBERPLS_INTEGERBINARY_INTENER
NUMBER
可以描述整数或数,而PLS_INTEGERBINARY_INTENER只能描述整数。
NUMBER,是以十制格式行存的,它便于存,但是在算上,系会自的将它转换行运算的。它的定方式是NUMBER(PS)P是精度,最大38位,S是刻度范可在-84...127 。例如:NUMBER(52)可以用来存表示-999.99...999.99 的数
P
S可以在定是省略,例如:NUMBER(5)NUMBER等;
BINARY_INTENER
用来描述不存在数据中,但是需要用来算的符号的整数。它以2补码制形式表述。循环计常使用这种类型。
PLS_INTEGERBINARY_INTENER唯一区是在算当中生溢出BINARY_INTENER型的量会被指派一个NUMBER型而不会出PLS_INTEGER型的量将会错误
②字符 包括CHARVARCHAR2(VARCHAR)LONGNCHARNVARCHAR2种类型。
CHAR
 描述定的字符串,如果实际值度,系将以空格填充。它的声明方式如下
CHAR(L)
 L字符串度,缺省1,作为变量最大32767个字符,作数据存ORACLE8中最大2000
VARCHAR2(VARCHAR) 描述变长字符串。它的声明方式如下VARCHAR2(L)L字符串度,没有缺省为变量最大32767个字,作数据存ORACLE8中最大4000。在多字节语境中,实际字符个数可能小于L,例如:当中文(SIMPLIFIED CHINESE_CHINA.ZHS16GBK)一个VARCHAR2(200)的数据列可以保存200个英文字符或者100字字符。
LONG 在数据中可以用来保存高达2G的数据,作为变量,可以表示一个最大32760的可字符串。
NCHARNVARCHAR2 国家字符集,与NLS指定的言集密切相,使用方法和CHARVARCHAR2相同。
③行
包括RAWLONG RAW种类型。用来存制数据,不会在字符集间转换
RAW
似于CHAR,声明方式RAW(L)L为长度,以字节为单位,作数据列最大2000,作为变量最大32767
LONG RAW
似于LONG,作数据列最大存2G数据,作为变量最大32760
④日期
只有一种类--DATE,用来存储时间信息,站用7个字(从世到秒)绝对没有千年虫问题
⑤行标识
只有一种类--ROWID,用来存标识,可以利用ROWIDTOCHAR函数来将行标识转换字符。
⑥布
只有一种类--BOOLEAN仅仅可以表示TRUEFALSE或者NULL
⑦可信
只有一种类--MLSLABEL,可以在TRUSTED ORACLE中用来保存可变长度的二标签
ORACLE中,只能存NULL
二)(COMPOSITE)
型是经过预的,利用型可以衍生出一些型。主要有记录
记录,可以看作是一组标量的构,它的声明方式如下:
TYPE record_type_name IS RECORD
( filed1 type1 [NOT NULL] [
=expr1]
.......
filedn typen [NOT NULL] [
=exprn] )
其中,record_type_name记录类型的名字。(是不是看着象CREATE TABLE......)引用量,
记录只是TYPE,不是VARIABLE
,不是物理存数据的表,在里是一种变型,也称PL/SQL表,它似于C言中的数,在理方式上也相似。
它的声明方式如下:
TYPE table_type_name IS TABLE OF scalar_type INDEX BY BINARY_INTENER

其中,table_type_name型的名字,scalar_type是一种标型的型声明。引用也必量。
表和数不同,表有两列,KEYVALUEKEY就是定义时声明的BINARY_INTENERVALUE就是定义时声明的scalar_type
除了记录和表之外,型、集合(嵌套表和VARRAYS)型,些将专门讲解。
(三)引用(REFERENCE)
PL/SQL8.0 之前,只有一种类--REF CURSOR,也就是游。它的定义较为简单
CURSOR cursor_name IS select .....from.....

PL/SQL8.0 之后,引入了REF型,它指向一个象。
(四)LOB
LOB
量主要是用来存大量数据的数据字段,最大可以存4G的内容。主要有:
CLOB ORACLE7中的LONG型相似,存储单字符数据。(用来存中文喔。。。)
NCLOB 用来存多字字符数据。(例如:存《傲江湖》就挺好)
BLOB LONG RAW相似,用来存构的二制数据。
BFILE 用来允ORACLE数据外存的大型二制文本行只形式的访问

8i
的数据

数据

参数

描述

number(m,n)

m=1 to 38
n=-84 to 127

变长的数列,允0、正负值m是所有有效数字的位数,n是小数点以后的位数。如:number(5,2)则这个字段的最大99,999,如果数超出了位数限制就会被截取多余的位数。如:number(5,2),但在一行数据中的个字段575.316真正保存到字段中的数575.32如:number(3,0)575.316,真正保存的数据是575

char(n)

n=1 to 2000

字符串,n节长,如果不指定度,缺省1个字节长(一个2

long

变长字符列,最大度限制是2GB,用于不需要作字符串搜索的串数据,如果要行字符搜索就要用varchar2型。long是一种较老的数据型,将来会逐BLOBCLOBNCLOB等大的象数据型所取代。

varchar2(n)

n=1 to 4000

变长的字符串,具体定义时指明最大n这种数据型可以放数字、字母以及ASCII字符集(或者EBCDIC等数据接受的字符集)中的所有符号。如果数据度没有达到最大nOracle 8i会根据数据大小自动调节字段度,如果你的数据前后有空格,Oracle 8i会自将其去。VARCHAR2是最常用的数据型。可做索引的最大3209

date

从公元前471211日到公元47121231日的所有合法日期,Oracle 8i在内部是按7个字来保存日期数据,在定包括小、分、秒。缺省格式DD-MON-YY,如07-11-00 表示2000117日。

raw(n)

n=1 to 2000

变长制数据,在具体定字段的候必指明最大nOracle 8i这种格式来保存小的形文件或格式的文本文件,如Miceosoft Word文档。raw是一种较老的数据型,将来会逐BLOBCLOBNCLOB等大的象数据型所取代。

long raw

变长制数据,最大度是2GBOracle 8i这种格式来保存大的形文件或格式的文本文件,如Miceosoft Word文档,以及音视频等非文本文件。在同一表中不能同long型和long raw型,long raw也是一种较老的数据型,将来会逐BLOBCLOBNCLOB等大的象数据型所取代。

blob
clob
nclob

大型(LOB),用来保存大的形文件或格式的文本文件,如Miceosoft Word文档,以及音视频等非文本文件,最大度是4GB
LOB
有几种类型,取决于你使用的字型,Oracle 8i实实在在地将些数据存在数据内部保存。可以取、存、写入等特殊操作。

bfile

在数据外部保存的大型二象文件,最大度是4GB这种外部的LOB型,通数据库记录变化情况,但是数据的具体保存是在数据外部行的。Oracle 8i可以取、查询BFILE,但是不能写入。大小由操作系决定。


9i 的数据

名称

Char

用于描述定的字符型数据,<= 2000

varchar2

用于描述变长的字符型数据,<= 4000

nchar

用来存Unicode字符集的定字符型数据,<= 1000

nvarchar2

用来存Unicode字符集的变长字符型数据,<= 1000

number

用来存整型或者浮点型数

Date

用来存日期数据

Long

用来存最大2GB变长字符数据

Raw

用来存构化数据的变长字符数据,<= 2000

Long raw

用来存构化数据的变长字符数据,<= 2GB

rowid

用来存表中列的物理地址的二制数据,占用固定的10个字

Blob

用来存多达4GB的非构化的二制数据

Clob

用来存多达4GB的字符数据

nclob

用来存多达4GBUnicode字符数据

Bfile

用来把非构化的二制数据存在数据以外的操作系文件中

urowid

用来存表示任何型列地址的二制数据

float

用来存浮点数

 

posted @ 2007-02-07 10:54  temptation  阅读(798)  评论(0编辑  收藏  举报