Oracle的数据类型有哪些?

Q

题目

Oracle的数据类型有哪些?

A

答案

Oracle的数据类型分为标量(Scalar)类型、复合(Composite)类型、引用(Reference)类型和LOB(Large Object)类型4种类型。

因为标量类型没有内部组件,所以,它又分为四类:数值、字符、布尔和日期/时间。

复合类型也叫组合类型,它包含了能够被单独操作的内部组件,每个组件都可以单独存放值,所以,一个复合变量可以存放多个值。因为复合变量类型不是数据库中已经存在的数据类型,所以,复合变量在声明类型之前,首先要创建复合类型,复合类型创建后可以多次使用,以便定义多个复合变量。复合变量像标量变量一样也有数据类型,复合数据类型有记录(RECORD)、表(TABLE)、嵌套表(Nested TABLE)和数组(VARRAY)四种类型,其中,表、嵌套表和数组也称为集合,而集合类型(表、嵌套表和数组)在使用时必须先使用TYPE进行定义方可使用。记录是由一组相关但又不同的数据类型组成的逻辑单元。表是数据的集合,可将表中的数据作为一个整体进行引用和处理。嵌套表是表中之表。一个嵌套表是某些行的集合,它在主表中表示为其中的一列。对主表中的每一条记录,嵌套表可以包含多个行。在某种意义上,它是在一个表中存储一对多关系的一种方法。可变数组(VARRAY)存储固定数量的元素(在运行中,可以改变元素数量),使用顺序数字作下标,可以定义等价的SQL类型,可以存储在数据库中。可以用SQL进行存储和检索,但比嵌套表缺乏灵活性。

引用类型类似于指针,能够引用一个值。

LOB(Large Object)类型的值就是一个LOB定位器,能够指示出大对象的存储位置。目前Oracle支持的LOB类型具体包括四个子类型(Subtype),分别为CLOB、BLOB、NLOB和BFILE。其中,CLOB、BLOB和NLOB都是将数据保存在数据库内部,所以称为内部LOB,而BFILE类型保存的核心是文件指针,真正的文件是保存在数据库外,所以称为外部LOB。

如果处理单行单列的数据那么可以使用标量变量;如果处理单行多列数据那么可以使用PL/SQL记录;如果处理单列多行数据那么可以使用PL/SQL集合。

BOOLEAN数据类型用于定义布尔型(逻辑型)变量,其值只能为TRUE(真)、FALSE(假)或NULL(空)。需要注意的是,该数据类型是PL/SQL数据类型,不能应用于表列。

下图是在PL/SQL中可以使用的预定义类型。

图3-1PL/SQL中可以使用的预定义类型

数据类型的作用在于指明存储数值时需要占据的内存空间大小和进行运算的依据。Oracle的字段数据类型如下表所示:

表3-1Oracle的字段数据类型

--------现有课程-------

详细内容可以添加麦老师微信或QQ私聊。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181126A0I65C00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券