数据类型很多,oracle基础类的书上有详细的说明,
文本字段
    固定长度的用char
    长度<4000字符的,用varchar2,
    长度 >4000 <2G的可用long,
    再大 <4G的用clob

解决方案 »

  1.   

    下面是我看到别人贴的oracle里面的数据类型介绍,看有帮助不~~ORACLE的数据类型 
    常用的数据库字段类型如下: 
    字段类型 中文说明 限制条件 其它说明 
    CHAR 固定长度字符串 最大长度2000 bytes `
    VARCHAR2 可变长度的字符串 最大长度4000 bytes 可做索引的最大长度749 
    NCHAR 根据字符集而定的固定长度字符串 最大长度2000 bytes 
    NVARCHAR2 根据字符集而定的可变长度字符串 最大长度4000 bytes 
    DATE 日期(日-月-年) DD-MM-YY(HH-MI-SS) 经过严格测试,无千虫问题 
    LONG 超长字符串 最大长度2G(231-1) 足够存储大部头著作 
    RAW 固定长度的二进制数据 最大长度2000 bytes 可存放多媒体图象声音等 
    LONG RAW 可变长度的二进制数据 最大长度2G 同上 
    BLOB 二进制数据 最大长度4G CLOB 字符数据 最大长度4G 
    NCLOB 根据字符集而定的字符数据 最大长度4G 
    BFILE 存放在数据库外的二进制数据 最大长度4G 
    ROWID 数据表中记录的唯一行号 10 bytes ********.****.****格式,*为0或1 
    NROWID 二进制数据表中记录的唯一行号 最大长度4000 bytes 
    NUMBER(P,S) 数字类型 P为整数位,S为小数位 
    DECIMAL(P,S) 数字类型 P为整数位,S为小数位 
    INTEGER 整数类型 小的整数 FLOAT 浮点数类型 
    NUMBER(38),双精度 
    REAL 实数类型 
    NUMBER(63),精度更高
      

  2.   

    注:nchar/nvarchar2为国际标准
    以上只谈到scalar类型,即标量
    还有collection集合类(varray-动态数组、table-表中表)
    relationship关系类(REF-参照)
      

  3.   

    Oracle数据库的数据类型与其它的数据库系统相比,它的数据类型不多,Oracle在表示数据方面比其他数据库系统来说要省去许多关键字。Oracle只用NUMBER(m,n)就可以表示任何复杂的数字数据。其它如日期类型等也简单得多,只DATE就表示日期和时间。下面以列表形式给出各个版本的Oracle系统数据类型的表示方法。下面给出Oracle旧版本的数据类型的目的是让读者了解Oracle的变化,另外就是你在对旧版本进行升级或数据转换时要注意各个版本的差别。ORACLE5、ORACLE6数据类型数据类型 说明
    Char 可变长字符型,≤254
    Varchar2 可变长字符型,≤2000
    Number(m,n) 数字类型,含整数、小数等
    Date 日期型,含时间,缺省格式为mmm-dd-yyyy hh:mi:ss(占7字节)
    Long 存储大型可变长字符串,≤2GB
    Raw 存储短二进制串,≤2GB
    Long  raw 存储长二进制串,≤2GB
    ORACLE7数据类型数据类型 说明
    Char 定长字符,≤255个字符
    Varchar 变长字符,≤2000个字符
    Varchar2 变长字符,≤2000个字符
    Number(m,n) 数字类型,含整数、浮点、双精度等
    Long 存储大型可变长字符串,≤2GB
    Raw 存储可变短二进制数,≤2000
    Long  raw 存储大型可变长二进制数,≤2GBORACLE8/8i  数据类型数据类型 说明
    Char 定长字符,≤2000个字符
    Varchar (同Varchar2)可变字符,≤4000个字符
    Varchar2 变长字符,≤4000个字符
    Date 固定长度(7字节)的日期型
    Number 数字型,可存放实型和整型
    Long 可变字符,≤2GB个字符
    Raw 可变二进制数据,≤4000字节
    Long  raw 可变二进制数据,≤2GB
    MLSLABEL 仅Trusted Oracle 用长度在2~5字节间
    Blob 大二进制对象,≤4GB
    Clob 大字符串对象,≤4GB
    Nclob 多字节字符集的Clob,≤4GB
    Bfile 外部二进制文件,大小由OS决定
      

  4.   

    CHAR(<size>)
    定长字符型(在Oracle5 、Oracle6 是变长),字符长度不够自动在右边加空格符号。当字符长度超出2000个则错误。不指定大小缺省为 1。VARCHAR(<size>)
    可变字符型,当前与VARCHAR2(<size>)相同。VARCHAR2(<SIZE>)
    可变字符型,当前与VARCHAR(<size>)相同。VARCHAR2 类型的字段(列)可存放4000个字符;但是VARCHAR2 变量可以存放32,767 个字符。大小必须指定。NCHAR(<size>)和NVARCHAR2(<size>)
    NCHAR 和NVARCHAR2 分别与 CHAR和VARCHAR2 有相同的大小。并用于于存放 National Language Support (NLS)数据,Oracle 允许以本地语言存放数据和查询数据。
    如果将列名声明成NCHAR、NVARCHAR2这样的类型,则insert和 select 等语句中的具体值前加N,不能直接按照普通字符类型进行操作。NUMBER(<p>,<s>) <p>是数据的整数部分,<s>是数据的精度(即小数)部分,注意,<s>部分可以表示负的精度。用<s>可以表示从小数点往右或往左保留多少位。如下表:实际值 数据类型 存储值
    1234567.89 Number 1234567.89
    1234567.89 Number(8) 1234568
    1234567.89 Number(6) 出错
    1234567.89 Number(9,1) 1234567.9
    1234567.89 Number(9,3) 出错
    1234567.89 Number(7,2) 出错
    1234567.89 Number(5,-2) 1234600
    1234511.89 Number(5,-2) 1234500
    1234567.89 Number(5,-4) 1230000
    1234567.89 Number(*,1) 1234567.9
    Sal  number(7,2),  --表示5位整数,2位小数.DATE
    Oracle 的日期型用7个字节表示,每个日期型包含如下内容:
    l Century (世纪)
    l Year (年)
    l Month(月)
    l Day (天)
    l Hour (小时)
    l Minute (分)
    l Second (秒)日期型字段有下面特点:l 日期型字段的插入和更新可以数据型或字符并带to_date 函数说明即可。
    l 缺省的日期格式有NLS_DATE_FORMAT参数控制,它的缺省格式为DD-MON-YY。
    l 缺省的时间是夜里 00:00:00 (即0点 0分0秒)。
    l sysdate返回的是服务器的时间,见下面例子。
    l 日期格式的显示可以设置,见下面例子。
    l 日期型可以运算,见下面例子。见下面例子。
    l 世纪用cc 表示;年用yyyy表示,月用mm表示,日用dd表示,小时用hh24表示,分用mi表示,秒用ss表示。
    BLOB
    大二进制对象,每条记录可存储达4GB的数据,详细见后面章节。CLOB
    大字符对象,每条记录可存储达4GB的数据,详细见后面章节。BFILE
    外部二进制文件,每条记录可存储达4GB的数据(与OS有关),详细见后面章节。RAW
    非结构的二进制数据,这些数据不被数据库系统解释。RAW可以存储达2,000字节。LONGRAW
    大的二进制类型数据,LONGRAW是非结构的二进制数据,这些数据不被数据库系统解释。LONGRAW可以存储达2GB字节。LONGRAW不能被索引,而RAW可以被索引。ROWID
    ROWID在Oracle数据库中是一个虚的列,即系统用的特殊的列,不是我们建立的列。用于对数据库中的每条记录进行定位。详细见“Rowid的使用”章节。UROWID
    UROWID 是Universal ROWID 的意思。即全球ROWID,它支持逻辑和物理ROWID,也作为外部表的(通过getway 访问的非Oracle 表)的ROWID。UROWID类型可以存储所有的ROWID类型的数据。
      

  5.   

    %TYPE类型的匹配:
                 books_printed         number(6);
                 books_sold             books_printed%TYPE;
                 books_sold的数据类型与book_printed的类型一致;
    ( %TYPE类型 在 PL/SQL中介绍 )。
    空值与字符型、数字型的运算:
            null + <数字>=null            (空值+数字仍是空值)
            null > <数字>=null            (空值与数字比较结果为空值)
            null || '字符串' = 字符串number类型与以下类型具有同等的值域:
           DEC
           Decimal
           Double   PREcision
           Float
           Integer
           Int
           Numeric
           Real
           Smallint提示:虽然Oracle可以使用上面的子数据类型,但建议还是采用NUMBER(n,m)为好。因为如果使用子数据类型定义字段类型不当,可能引起数据在运算方面的问题。Long数据类型的限制:
    l select中可以用long;
    l update中可以用select子句;
    l insert中可以用Valus子句;
    l 每个表只能允许一个long列;
    l long列不能列出完整性约束(null、not   null除外);
    l long列不能被索引;
    l 过程或存储函数不能接收long型函数;
    l 存储函数不能返回long型值。
    long  目前不能出现在以下情况中:
    l select中的Where,Group  by,order  by,Connect  by,distinct;
    l 不能对long列作substr,instr;
    l 表达式或条件;
    l 子查询或集合中不能用long;
    l Create   table   ...as   select   中不能用long;
    以上節選自赵元杰的《Oracle8i/9iMlslabel数据库基础》