oracle 字段类型文档格式.docx

上传人:b****6 文档编号:20695056 上传时间:2023-01-25 格式:DOCX 页数:14 大小:25.10KB
下载 相关 举报
oracle 字段类型文档格式.docx_第1页
第1页 / 共14页
oracle 字段类型文档格式.docx_第2页
第2页 / 共14页
oracle 字段类型文档格式.docx_第3页
第3页 / 共14页
oracle 字段类型文档格式.docx_第4页
第4页 / 共14页
oracle 字段类型文档格式.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

oracle 字段类型文档格式.docx

《oracle 字段类型文档格式.docx》由会员分享,可在线阅读,更多相关《oracle 字段类型文档格式.docx(14页珍藏版)》请在冰豆网上搜索。

oracle 字段类型文档格式.docx

BLOB 

二进制数据 

最大长度4G 

CLOB 

字符数据 

NCLOB 

根据字符集而定的字符数据 

BFILE 

存放在数据库外的二进制数据 

ROWID 

数据表中记录的唯一行号 

10 

********.****.****格式,*为0或1 

NROWID 

二进制数据表中记录的唯一行号 

NUMBER(P,S) 

数字类型 

P为整数位,S为小数位 

DECIMAL(P,S) 

INTEGER 

整数类型 

小的整数 

FLOAT 

浮点数类型 

NUMBER(38),双精度 

REAL 

实数类型 

NUMBER(63),精度更高 

数据类型参数描述

char(n)n=1to2000字节定长字符串,n字节长,如果不指定长度,缺省为1个字节长(一个汉字为2字节)

varchar2(n)n=1to4000字节可变长的字符串,具体定义时指明最大长度n,

这种数据类型可以放数字、字母以及ASCII码字符集(或者EBCDIC等数据库系统接受的字符集标准)中的所有符号。

如果数据长度没有达到最大值n,Oracle8i会根据数据大小自动调节字段长度,

如果你的数据前后有空格,Oracle8i会自动将其删去。

VARCHAR2是最常用的数据类型。

可做索引的最大长度3209。

number(m,n)m=1to38

n=-84to127可变长的数值列,允许0、正值及负值,m是所有有效数字的位数,n是小数点以后的位数。

如:

number(5,2),则这个字段的最大值是99,999,如果数值超出了位数限制就会被截取多余的位数。

number(5,2),但在一行数据中的这个字段输入575.316,则真正保存到字段中的数值是575.32。

number(3,0),输入575.316,真正保存的数据是575。

date无从公元前4712年1月1日到公元4712年12月31日的所有合法日期,

Oracle8i其实在内部是按7个字节来保存日期数据,在定义中还包括小时、分、秒。

缺省格式为DD-MON-YY,如07-11月-00表示2000年11月7日。

long无可变长字符列,最大长度限制是2GB,用于不需要作字符串搜索的长串数据,如果要进行字符搜索就要用varchar2类型。

long是一种较老的数据类型,将来会逐渐被BLOB、CLOB、NCLOB等大的对象数据类型所取代。

raw(n)n=1to2000可变长二进制数据,在具体定义字段的时候必须指明最大长度n,Oracle8i用这种格式来保存较小的图形文件或带格式的文本文件,如MiceosoftWord文档。

raw是一种较老的数据类型,将来会逐渐被BLOB、CLOB、NCLOB等大的对象数据类型所取代。

longraw无可变长二进制数据,最大长度是2GB。

Oracle8i用这种格式来保存较大的图形文件或带格式的文本文件,如MiceosoftWord文档,以及音频、视频等非文本文件。

在同一张表中不能同时有long类型和longraw类型,longraw也是一种较老的数据类型,将来会逐渐被BLOB、CLOB、NCLOB等大的对象数据类型所取代。

blob

clob

nclob无三种大型对象(LOB),用来保存较大的图形文件或带格式的文本文件,如MiceosoftWord文档,以及音频、视频等非文本文件,最大长度是4GB。

LOB有几种类型,取决于你使用的字节的类型,Oracle8i实实在在地将这些数据存储在数据库内部保存。

可以执行读取、存储、写入等特殊操作。

bfile无在数据库外部保存的大型二进制对象文件,最大长度是4GB。

这种外部的LOB类型,通过数据库记录变化情况,但是数据的具体保存是在数据库外部进行的。

Oracle8i可以读取、查询BFILE,但是不能写入。

大小由操作系统决定。

数据类型是列或存储过程中的一个属性。

Oracle支持的数据类型可以分为三个基本种类:

字符数据类型、数字数据类型以及表示其它数据的数据类型。

字符数据类型

char数据类型存储固定长度的字符值。

一个CHAR数据类型可以包括1到2000个字符。

如果对CHAR没有明确地说明长度,它的默认长度则设置为1。

如果对某个CHAR类型变量赋值,其长度小于规定的长度,那么Oracle自动用空格填充。

VARCHAR2存储可变长度的字符串。

虽然也必须指定一个VARCHAR2数据变量的长度,但是这个长度是指对该变量赋值的最大长度而非实际赋值长度。

不需用空格填充。

最多可设置为4000个字符。

因为VARCHAR2数据类型只存储为该列所赋的字符(不加空格),所以VARCHAR2需要的存储空间比CHAR数据类型要小。

Oracle推荐使用VARCHAR2

NCHAR和NVARCHAR2NCHAR和NVARCHAR2数据类型分别存储固定长度与可变长度的字符串,但是它们使用的是和数据库其他类型不同的字符集。

在创建数据库时,需要指定所使用的字符集,以便对数据中数据进行编码。

还可以指定一个辅助的字符集[即本地语言集]。

NCHAR和NVARCHAR2类型的列使用辅助字符集。

在Oracle9i中,可以以字符而不是字节为单位表示NCHAR和NVARCHAR2列的长度。

LONGlong数据类型可以存放2GB的字符数据,它是从早期版本中继承下来的。

现在如果存储大容量的数据,Oracle推荐使用CLOB和NCLOB数据类型。

在表和SQL语句中使用LONG类型有许多限制。

CLOB和NCLOB 

CLOB和NCLOB数据类型可以存储多达4GB的字符数据。

NCLOB数据类型可存储NLS数据。

数字数据类型

Oracle使用标准、可变长度的内部格式来存储数字。

这个内部格式精度可以高达38位。

NUMBER数据类型可以有两个限定符,如:

columnNUMBER(precision,scale)。

precision表示数字中的有效位。

如果没有指定precision的话,Oracle将使用38作为精度。

scale表示小数点右边的位数,scale默认设置为0。

如果把scale设成负数,Oracle将把该数字取舍到小数点左边的指定位数。

日期数据类型

Oracle标准日期格式为:

DD-MON-YYHH:

MI:

SS

通过修改实例的参数NLS_DATE_FORMAT,可以改变实例中插入日期的格式。

在一个会话期间,可以通过AltersessionSQL命令来修改日期,或者通过使用SQL语句的TO_DATE表达式中的参数来更新一个特定值。

其它的数据类型

RAW和LONGRAW 

RAW和LONGRAW数据类型主要用于对数据库进行解释。

指定这两种类型时,Oracle以位的形式来存储数据。

RAW数据类型一般用于存储有特定格式的对象,如位图。

RAW数据类型可占用2KB的空间,而LONGRAW数据类型则可以占用2GB大小。

ROWIDROWID是一种特殊的列类型,称之为伪列(pseudocolumn)。

ROWID伪列在SQLSELECT语句中可以像普通列那样被访问。

Oracle数据库中每行都有一个伪列。

ROWID表示行的地址,ROWID伪列用ROWID数据类型定义。

ROWID与磁盘驱动的特定位置有关,因此,ROWID是获得行的最快方法。

但是,行的ROWID会随着卸载和重载数据库而发生变化,因此建议不要在事务中使用ROWID伪列的值。

例如,一旦当前应用已经使用完记录,就没有理由保存行的ROWID。

不能通过任何SQL语句来设置标准的ROWID伪列的值。

列或变量可以定义成ROWID数据类型,但是Oracle不能保证该列或变量的值是一个有效的ROWID。

LOB(大型对象)数据类型,可以保存4GB的信息。

LOB有以下3中类型:

<

CLOB>

,只能存储字符数据

NCLOB>

,保存本地语言字符集数据

BLOB>

,以二进制信息保存数据

可以指定将一个LOB数据保存在Oracle数据库内,还是指向一个包含次数据的外部文件。

LOB可以参与事务。

管理LOB中的数据必须通过DBMS_LOBPL/SQL内置软件包或者OGI接口。

为了便于将LONG数据类型转换成LOB,Oracle9i包含许多同时支持LOB和LONG的函数,喊包括一个ALTERTABLE语句的新选择,它允许将LONG数据类型自动转换成LOB。

BFILE

BFILE数据类型用做指向存储在Oracle数据库以外的文件的指针。

XMLType

作为对XML支持的一部分,Oracle9i包含了一个新的数据类型XMLType。

定义为XMLType的列将存储一个字符LOB列中的XML文档。

有许多内置的功能可以使你从文档中抽取单个节点,还可以在XMLType文档中对任何节点创建索引。

用户自定义数据

从Oracle8以后,用户可以定义自己的复杂数据类型,它们由Oracle基本数据类型组合而成。

AnyType、AnyData和AnyDataSet

Oracle包括3个新的数据类型,用于定义在现有数据类型之外的数据结构。

其中每种数据类型必须用程序单元来定义,以便让Oracle9i知道如何处理这些类型的特定实现。

类型转换

Oracle会自动将某些数据类型转换成其他的数据类型,转换取决于包括该值的SQL语句。

数据转换还可以通过Oracle的类型转换函数显示地进行。

连接与比较

在大多数平台上OracleSQL中的连接操作符用两条竖线(||)表示。

连接是将两个字符值连接。

Oracle的自动类型转换功能使得两个数字值也可以进行连接。

NULL

NULL值是关系数据库的重要特征之一。

实际上,NULL不代表任何值,它表示没有值。

如果要创建表的一个列,而这个列必须有值,那么应将它指定为NOTNULL,这表示该列不能包含NULL值。

任何数据类型都可以赋予NULL值。

NULL值引入了SQL运算的三态逻辑。

如果比较的一方是NULL值,那么会出现3种状态:

TURE、FALSE以及两者都不是。

因为NULL值不等于0或其他任何值,所以测试某个数据是否为NULL值只能通过关系运算符ISNULL来进行。

NULL值特别适合以下情况:

当一个列还未赋值时。

如果选择不使用NULL值,那么必须对行的所有列都要赋值。

这实际上也取消了某列不需要值的可能性,同时对它赋的值也很容易产生误解。

这种情况则可能误导终端用户,并且导致累计操作的错误结果。

number(p,s)

p:

1~38

s:

-84~127

p>

0,对s分2种情况:

1.s>

0

精确到小数点右边s位,并四舍五入。

然后检验有效数位是否<

=p;

如果s>

p,小数点右边至少有s-p个0填充。

2.s<

精确到小数点左边s位,并四舍五入。

=p+|s|

123.2564NUMBER123.2564

1234.9876NUMBER(6,2)1234.99

12345.12345NUMBER(6,2)Error

1234.9876NUMBER(6)1235

12345.345NUMBER(5,-2)12300

1234567NUMBER(5,-2)1234600

12345678NUMBER(5,-2)Error

123456789NUMBER(5,-4)123460000

1234567890NUMBER(5,-4)Error

12345.58NUMBER(*,1)12345.6

0.1NUMBER(4,5)Error

0.01234567NUMBER(4,5)0.01235

0.09999NUMBER(4,5)0.09999

ORACLE的数据类型

常用的数据库字段类型如下:

字段类型中文说明限制条件其它说明

CHAR固定长度字符串最大长度2000bytes

VARCHAR2可变长度的字符串最大长度4000bytes可做索引的最大长度749

NCHAR根据字符集而定的固定长度字符串最大长度2000bytes

NVARCHAR2根据字符集而定的可变长度字符串最大长度4000bytes

DATE日期(日-月-年)DD-MM-YY(HH-MI-SS)经过严格测试,无千虫问题

LONG超长字符串最大长度2G(231-1)足够存储大部头著作

RAW固定长度的二进制数据最大长度2000bytes可存放多媒体图象声音等

LONGRAW可变长度的二进制数据最大长度2G同上

BLOB二进制数据最大长度4G

CLOB字符数据最大长度4G

NCLOB根据字符集而定的字符数据最大长度4G

BFILE存放在数据库外的二进制数据最大长度4G

ROWID数据表中记录的唯一行号10bytes********.****.****格式,*为0或1

NROWID二进制数据表中记录的唯一行号最大长度4000bytes

NUMBER(P,S)数字类型P为整数位,S为小数位

DECIMAL(P,S)数字类型P为整数位,S为小数位

INTEGER整数类型小的整数

FLOAT浮点数类型NUMBER(38),双精度

REAL实数类型NUMBER(63),精度更高

varchar2(n)n=1to4000字节可变长的字符串,具体定义时指明最大长度n,这种数据类型可以放数字、字母以及ASCII码字符集(或者EBCDIC等数据库系统接受的字符集标准)中的所有符号。

如果数据长度没有达到最大值n,Oracle8i会根据数据大小自动调节字段长度,如果你的数据前后有空格,Oracle8i会自动将其删去。

date无从公元前4712年1月1日到公元4712年12月31日的所有合法日期,Oracle8i其实在内部是按7个字节来保存日期数据,在定义中还包括小时、分、秒。

blob/clob/nclob无三种大型对象(LOB),用来保存较大的图形文件或带格式的文本文件,如MiceosoftWord文档,以及音频、视频等非文本文件,最大长度是4GB。

Oracle数据类型及存储方式:

char

概述

通过实例,全面而深入的分析oralce的基本数据类型及它们的存储方式。

以ORACLE10G为基础,介绍oralce10g引入的新的数据类型。

让你对oracle数据类型有一个全新的认识。

揭示一些不为人知的秘密和被忽略的盲点。

从实用和优化的角度出发,讨论每种数据类型的特点。

从这里开始oracle之旅!

第一部份字符类型

§

1.1 

char

定长字符串,会用空格来填充来达到其最大长度,最长2000个字节。

1.新建一个测试表test_char.,只有一个char类型的列。

长度为10

SQL>

createtabletest_char(colAchar(10));

Tablecreated

2.向这个表中插入一些数据。

insertintotest_charvalues('

a'

);

1rowinserted

aa'

aaa'

aaaa'

aaaaaaaaaa'

注意:

最多只能插入10个字节。

否是就报错。

aaaaaaaaaaa'

insertintotest_charvalues('

ORA-12899:

valuetoolargeforcolumn"

PUB_TEST"

."

TEST_CHAR"

COLA"

(actual:

11,maximum:

10)

3.使用dump函数可以查看每一行的内部存数结构。

selectcolA,dump(colA)fromtest_char;

COLA 

DUMP(COLA)

------------------------------------------------------------------------------------------

Typ=96Len=10:

97,32,32,32,32,32,32,32,32,32

aa 

97,97,32,32,32,32,32,32,32,32

aaa 

97,97,97,32,32,32,32,32,32,32

aaaa 

97,97,97,97,32,32,32,32,32,32

aaaaaaaaaaTyp=96Len=10:

97,97,97,97,97,97,97,97,97,97

Typ=96表示数据类型的ID。

Oracle为每一种数据类型都进行了编号。

说明char类型的编号是96.

Len=10表示所在的内部存储的长度(用字节表示)。

虽然第一例只存了一个字符’a’,但是它还是占用了10个字节的空间。

97,32,32,32,32,32,32,32,32,32表示内部存储方式。

可见oracle的内部存储是以数据库字符集进行存储的。

97正好是字符a的ASCII码。

可以使用chr函数把ASCII码转成字符。

selectchr(97)fromdual;

CHR(97)

-------

a

要想知道一个字符的ASCII码,可以使用函数ascii

selectascii('

)fromdual;

ASCII('

A'

----------

97

32正好是空格的ascii码值。

Char类型是定长类型。

它总会以空格来填充以达到一个固

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 法律文书 > 判决书

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1