X龙@China .Net 'blog

需要的不仅仅是工作,而是通过努力得来的美好将来。
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

Oracle的数据类型

Posted on 2011-03-10 16:16  X龙  阅读(241)  评论(0编辑  收藏  举报
1.字符型
    用来存储字符串或字符数据,主要类型有VARCHAR2、CHAR和LONG。
(1)VARCHAR2
    用来存储可变长的字符串或字符型数据,在使用时,须指明其最大字节数据。
(2)CHAR
    用来存储定长的字符串或字符型数据,使用时也要指定长度,其缺省值为1。
(3)LONG
    用来存储可变长的字符串或字符型数据。
2.数字型
    数字型用于存储整数或实数。主要有:number、BINARY_INTEGER 
(1)NUMER
    用于存储数字数据,包括整数或浮点数。在实际应用中,应指定该类型数据长度和小数的位数。在Oracle中其指定的长度不包含小数点和符号位。
(2)BINARY_INTEGER
    它是PL/SQL的一个数据类型,它用于带符号的整数值,以2的补码的二进制形式进行存储。
3.日期型
    DATE型用于存储日期和时间信息,包括世纪、和、月、日、时、分、秒,其占7个字节,每一部分占一个字节。
4.RAW和LONG RAW
    RAW和LONG RAW用来存储二进制数据。
(1)RAW
    RAW类似于CHAR,必须指定存储二进制数的最大字节数。
(2)LONG RAW
    LONG RAW类似于LONG。
5.ROWID
    数据库表中的每一行(ROW)都有一个地址,通过查询伪列ROWID获得该行地址。该伪列的值为16进制字符串,该串的数据类型为ROWID。其字符值的形式为:BLOCK.ROW.FILE。
6. 布尔型
    在表中无布尔型的字段类型,只有在PL/SQL中可以定义BOOLEAN型,它的值为TRUE、FALSE、NULL。在定义BOOLEAN型变量时可限定变量为NOT NULL,但此时必须为该变量初始化。
7.复合类型
(1)记录
    记录定义的格式如下:
      TYPE  Record_type  IS  RECORD(
         Field1 Datatype1 [NOT NULL][:=Expression1],
         Field2 Datatype2 [NOT NULL][:=Expression2],
        …);
    在上述格式中Record_type是一种定义的记录类型。
    如果要定义记录类型的变量与已建立的某一关系表结构一致,可使用下列定义:
      Record_typename  table_name%ROWTYPE;
(2) 表
    PL/SQL中的表类似于C语言中的数组,并与其数组的处理方式类似,但实现方法不同。表必须定义该表类型,再声明一个属于该类型的变量,然后才能引用。定义表类型的格式如下:
TYPE Table_type IS TABLE OF type INDEX BY BINARY_INTEGER;
    一个PL/SQL表类似于数据库中的一个只有两列的表,一列的类型为BINARY_INTEGER,另一列的类型为定义中指定的类型。
8.LOB类型
    LOB类型用来存储大型的对象,它可以是一个二进制数值或字符型值,其最大长度为4GB。LOB可包含没有结构特征的数据,对它的访问比对LONG 或LONG RAW数据的访问更为有效,对它的限制更少。
9.自定义子类型
    PL/SQL中除可使用预定义的子类型外,用户自己可以定义子类型,其格式为:
      SUBTYPE new_type IS original_type
10.使用%TYPE
    在许多情况下,PL/SQL变量可以用来处理存储在数据库表中的数据,因而该变量类型与表中相应字段的数据类型相同。可使用%TYPE说明某一变量与表中字段类型相同。其格式为:
      variety_name  table_name.field_name%TYPE;
点击这里给我发消息http://wp.qq.com/index.html