zoukankan      html  css  js  c++  java
  • [转] 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

    用来存浮点数

     

  • 相关阅读:
    C++Primer中文版(第4版)第五章习题答案
    C++Primer中文版(第4版)第四章习题答案
    利用矩阵奇异值分解对图像进行压缩
    利用奇异值分解压缩图像
    程序莫名其妙地老死
    图像边沿平滑处理的matlab实现
    Zend Server搭建网站备注
    利用矩阵的n次方求图的连通性
    matlab增加数组元素的效率分析
    PHP语法总结
  • 原文地址:https://www.cnblogs.com/temptation/p/643124.html
Copyright © 2011-2022 走看看