• 网络学院
  • 新手学堂
  • 操作系统
  • 网络技术
  • 软件应用
  • 办公软件
  • 编程技术
  • 网站架设
  • 数据库类
  • 平面设计
  • 多媒体类
  • 游戏资讯
  • 教学论文
  • 认证考试
Oracle复合数据类型(3)
广告位
  站点:
  • 首 页
  • 最新软件
  • 最新文章
  • 国内软件
  • 国外软件
  • 汉化软件
  • 源码下载
  • 字体下载
Oracle复合数据类型(3)
软件发布 Oracle复合数据类型(3)
网络软件 系统工具 应用软件 联络聊天 图形图像 多媒体类 行业软件 游戏娱乐 编程开发 安全相关 教育教学 数码软件
热门软件: QQ 瑞星 pplive e话通 木马克星 千千静听 office2000 五笔字根 Photoshop 视频分割
返回首页 | 文章首页 | 数据库类 | Oracle | Oracle复合数据类型(3)

Oracle复合数据类型(3)

 

添加时间: 2006-4-18 3:20:39  作者: Oracle教程  阅读次数:173   来源: http://d9soft.com

 

 

       

PL/SQL集合

  集合与其他语言中的数组相似,在ORACLE7.3及以前的版本中只有一种集合称为PL/SQL表,这种类型的集合依然保留,就是索引(INDEX_BY)表,与记录相似,集合在定义的时候必须使用TYPE语句,然后才是创建和使用这种类型的变量。

  集合的类型

  PL/SQL有三种类型的集合

  . Index_by表

  . 嵌套表

  . VARRAY

  这三种类型的集合之间由许多差异,包括数据绑定、稀疏性(sparsity)、数据库中的存储能力都不相同。绑定涉及到集合中元素数量的限制,VARRAY集合中的元素的数量是有限,Index_by和嵌套表则是没有限制的。稀疏性描述了集合的下标是否有间隔,Index_by表总是稀疏的,如果元素被删除了嵌套表可以是稀疏的,但VARRAY类型的集合则是紧密的,它的下标之间没有间隔。

  Index_by表不能存储在数据库中,但嵌套表和VARRAY可以被存储在数据库中。

  虽然这三种类型的集合有很多不同之处,但他们也由很多相似的地方:

   . 都是一维的类似数组的结构

   . 都有内建的方法

   . 访问由点分隔

  Index_by表

  Index_by表集合的定义语法如下:

TYPE type_name IS TABLE OF element_type [NOT NULL] INDEX
BY BINARY_INTERGET;

  这里面重要的关键字是INDEX BY BINARY_INTERGET,没有这个关键字,那么集合将是一个嵌套表,element_type可以是任何合法的PL/SQL数据类型,包括:PLS/INTEGER、SIGNTYPE、和BOOLEAN。其他的集合类型对数据库的数据类型都有限制,但Index_by表不能存储在数据库中,所以没有这些限制。

  一旦定义了index_by表,就可以向创建其他变量那样创建index_by表的变量:

DECLARE
TYPE symbol_tab_typ IS TABLE OF VARCHAR2(5) INDEX BY BINARY_INTEGER;
symbol_tab symbol_tab_typ;
BEGIN

  嵌套表

  嵌套表非常类似于Index_by表,创建的语法也非常相似。使用TYPE语句,只是没有INDEX BY BINARY_INTEGER子串。

  TYPE type_name IS TABLE OF element_type [NOT NULL]

  NOT NULL选项要求集合所有的元素都要有值,element_type可以是一个记录,但是这个记录只能使用标量数据类型字段以及只用于数据库的数据类型(不能是PLS_INTEGER,BOOLEAN或SIGNTYPE)。

  嵌套表和VARRAY都能作为列存储在数据库表中,所以集合自身而不是单个的元素可以为NULL,ORACLE称这种整个集合为NULL的为"自动设置为NULL(atomically NULL)"以区别元素为NULL的情况。当集合为NULL时,即使不会产生异常,用户也不能引用集合中的元素。用户可以使用IS NULL操作符检测集合是否为NULL。

  存储在一个数据库中的嵌套表并不与表中的其它数据存放在同一个数据块中,它们实际上被存放在第二个表中。正如没有order by子句select语句不能保证返回任何有顺序的数据,从数据库中取回的嵌套表也不保证元素的顺序。由于集合数据是离线存储的,对于大型集合嵌套表是一个不错的选择。

  VARRAY

  VARRAY或数据变量都有元素的限制。想起他集合一样VARRAY定义仍然使用TYPE语句,但关键字VARRAY或VARRYING ARRAY告诉ORACLE这是一个VARRAY集合。

TYPE type_name IS [VARRAYVARYING ARRAY] (max_size) OF
element_type [NOT NULL]

  max_size是一个整数,用于标示VARRAY集合拥有的最多元素数目。VARRAY集合的元素数量可以低于max_size,但不能超过max_size。element_type是一维元素的数据类型,如果element_type是记录,那么这个记录只能使用标量数据字段(与嵌套标相似)。NOT NULL子串表示集合中的每一个元素都必须有值。

  与嵌套表相似,VARRAY能够自动为NULL,可以使用IS NULL操作符进行检测。与嵌套表不同的是,当VARRAY存储在数据库中时与表中的其他数据存放在同一个数据块中。正象列的排序保存在表的SELECT*中一样元素的顺序保存在VARRAY中。同样由于集合是在线存储的,VARRAY很适合于小型集合。

 

 

 

上下文章:

 

上一篇文章: Oracle复合数据类型(4) 下一篇文章: Oracle复合数据类型(2)

相关文章:

  • 在ORACLE的存储过程中如何做简单的动态查询
  • Oracle下调数据库许可价格以适应多芯CPU
  • Oracle全球客户支持副总裁汤姆·舒尔滋演讲
  • Oracle中国前员工述说公司高层内部纷争史
  • Oracle发布免费数据库管理工具Raptor

相关软件:

  • SmartVizor 可变数据印刷系统 8.0
  • 键盘网络城市音乐(含最新数据)
  • 子墨数据库同步工具 V1.0.0.0
  • 数据精灵(DataFairy) V5.1
  • 腾讯QQ IP数据库 V0605 纯真版
  • 腾讯QQ IP数据库 V0420 纯真版(繁体版)

 

 

快速导航

  • 网络学院
  • 精品汇聚
  • 字体下载
  • 教程下载
  • ASP源码
  • PHP源码
  • Net源码
  • JSP 源码

数据库类分类导航

  • SQL Server
  • MySQL Server
  • DB2
  • Oracle
  • ACCESS
  • Foxpro
  • PowerBuilder
  • Sybase

本类经典文章推荐

  • Oracle中使用PL/SQL操作COM对象
  • Oracle复合数据类型(1)
  • Oracle复合数据类型(2)
  • Oracle复合数据类型(3)
  • Oracle复合数据类型(4)
  • Oracle复合数据类型(5)
  • 数据库设计三大范式应用实例剖析
  • Oracle数据库的备份及恢复策略研究
  • Oracle入门心得(2)
  • Oracle的入门心得(1)

Oracle阅读排行

  • Oracle数据库的空间管理技巧
  • Oracle中导入文本数据的方法
  • Oracle复合数据类型(1)
  • 浅析Oracle和SqlServer存储过程的...
  • Oracle复合数据类型(3)
  • Oracle复合数据类型(2)
  • oracle 10g常见问题精选
  • Oracle中使用PL/SQL操作COM对象
  • Oracle入门心得(2)
  • Oracle复合数据类型(4)

数据库类阅读总排行

  • MySQL中的SQL-- TEXT、DATE、和SE...
  • MYSQL初学者使用指南 上篇
  • 怎样在vc、delphi中使用mysql(mys...
  • MySQL数据导入与导出之二
  • SQL Server数据库技术(96)
  • MYSQL初学者使用指南 下篇
  • SQL Server数据库技术(98)
  • SQL Server数据库技术(60)
  • 精通数据库系列之入门-基础篇
  • 如何把ACCESS的数据导入到Mysql中

广告位置

字母检索 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 回到顶部

关于我们 | 版权声明 | 免责条款 | 广告联系 | 软件发布 | 下载帮助 | 下载排行 | 网站地图 | 特别鸣谢 | 友情连接

copyright; 2005-2008 D9soft.com 第九软件网 版权所有