oracle 三种集合类型比较.docVIP

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
oracle 三种集合类型比较

oracle 三种集合类型比较 oracle 三種集合類型比較(index-by表,嵌套表,數組) Oracle三种集合数据类型(索引表,嵌套表,VARRAY 数组)的比较-PLSQL—之三 2009-12-05 16:21 PL/SQL中没有数组的概念,他的集合数据类型和数组是相似的。在7.3以前的版本中只有一种集合,称为PL/SQL表,在这之后又有两种集合数据类型:嵌套表和varray。其中varray集合中的元素是有数量限制的,index_by表和嵌套表是没有这个限制的。index-by表是稀疏的,也就是说下标可以不连续,varray类型的集合则是紧密的,他的下标没有间隔。index_by表不能存储在数据库中,但是嵌套表和varray可以被存储在数据库中。 集合在使用时必须先使用type进行定义方可使用 1.index_by表 type type_name is table of element_type [NOT NULL] index by binary_integer 2.嵌套表 type type_name is table of element_type [NOT NULL] 3.varray type type_name is [varray |varying array](max_size) of element_type[NOT NULL] 一,index_by表 TYPE TYPE1 IS TABLE OF VARCHAR2(10) INDEX BY BINARY_INTEGER; 1.使用的时候需要先赋值后读取,至少也要先初期化一下,否则会出现异常:ORA-01403: no data found。 2.这种数组不需要事先指定上限,下标可以不连续,可以是0或负数。 例:v1 TYPE1; v1(-1) := -1; v1(0) := 0; v1(1) := 1; DBMS_OUTPUT.put_line(v1(-1)); --访问合法 DBMS_OUTPUT.put_line(v1(2)); --访问非法 二,嵌套表 TYPE TYPE2 IS TABLE OF VARCHAR2(10); 54 1.必须进行初期化,否则会出现异常:ORA-06531: Reference to uninitialized collection 2.初期化方法: 54 v1 TYPE2 := TYPE2(); --声明时初期化数组为空 54 v2 TYPE2 := TYPE2(1,2,3,4,5); --声明时初期化数组为5个元素 v1 := TYPE2(); --初期化后数组为空 v2 := TYPE2(1,2,3,4,5); --初期化后数组为5个元素 3.数组元素的访问: 下标从1开始,不能超过数组所有元素的总和,当下标超出允许范围时,出现异常:ORA-06532: Subscript outside of limit 因为不能访问空数组,所以空数组的场合,必须进行数组扩展。 54 例:v1.EXTEND; V1(1):= ‘1’; --访问合法 54 v1(2):= ‘2’; --访问非法,之前必须再次执行v1.EXTEND; 网管网bitsCN_com 例:v2的下标范围是1~5。 v2(5):= ‘Hello’; --访问合法 DBMS_OUTPUT.put_line(v2(6)); --访问非法 三,Varray TYPE TYPE3 IS ARRAY(5) OF VARCHAR2(10); 由于类型定义时的元素个数限制,所以TYPE3的变量在使用时最大的元素个数不能超过5个。 与嵌套表基本相同(略) 四,集合内建函数 集合还有很多内建函数,这些函数称为方法,调用方法的语法如下: 54 collection.method 下表中列出oracle中集合的方法 方法 描述 使用限制 COUNT 返回集合中元素的个数 网管网bitsCN.com DELETE 删除集合中所有元素 54 DELETE(x) 删除元素下标为x的元素,如果x为null,则集合保持不变 对VARRAY非法 DELETE(x,y) 删除元素下标从X到Y的元素,如果XY集合保持不变 对VARRAY非法 EXIST(x) 如果集合元素x已经初始化,则返回TRUE, 否则返回FALSE 中国网管联盟www_bitscn_com EXTEND 在集合末尾添加一个元素 对Index_by非法 54 EXTEND(x) 在集合末尾添加x

文档评论(0)

f8r9t5c + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8000054077000003

1亿VIP精品文档

相关文档