`
wsql
  • 浏览: 11795298 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

集合常用方法和过程

 
阅读更多

集合常用方法
方法:exists,count,limit,first,last,prior,next
过程:extend,trim,delete
extend,trim只适用于嵌套表和数组,对索引表不适用
delete 只适用于索引表和嵌套表,对数组不适用
1.exists 确定集合元素下标是否存在,存在返回true,不存在返回false
用法: 集合名.exists(下标) --注意,判断的是下标,嵌套表和数组需要初始化

declare
  type ename_table_type is table of emp.ename%type index by binary_integer;
  ename_table ename_table_type;  --初始化一个元素
begin
  ename_table('2'):='ze';
  if ename_table.exists('2') then    --ename_table.exists('3')返回false
      dbms_output.put_line(ename_table('2'));
  else
      dbms_output.put_line('必须初始化集合元素');
  end if;
end;


2.count 返回当前集合变量中元素总个数,统计结果包含null元素

declare 
  type ename_table_type is varray(10) of emp.ename%type;
  ename_table ename_table_type:=ename_table_type('1','2');
begin
  dbms_output.put_line(ename_table.count);  --2
  ename_table.extend(3);  
  ename_table(3):=null;
  dbms_output.put_line(ename_table.count); --5
  dbms_output.put_line(nvl(ename_table(3),'1')); --1
end;


3.limit 对于varray数组,返回集合变量最大个数,而对嵌套表和索引表是没有个数限制的,返回null

declare 
  type ename_table_type is varray(10) of emp.ename%type;
  ename_table ename_table_type:=ename_table_type('1','2');
begin
  dbms_output.put_line(ename_table.limit);  --10
end;


4.first 返回集合元素下标排序后的第一个下标
last 返回集合元素下标排序后的最后一个下标

declare 
  type ename_table_type is varray(10) of emp.ename%type;
  ename_table ename_table_type:=ename_table_type('2','1');
begin
  ename_table.extend(3); 
  dbms_output.put_line(ename_table.first);  --1
  dbms_output.put_line(ename_table.last);   --5
end;


--对于索引表,第一个元素下标是指标按元素下标排序后的第一个元素下标
declare 
  type ename_table_type is table of emp.ename%type index by varchar2(10);  --varchar2需要定义长度
  ename_table ename_table_type;
begin
  ename_table('b'):='c';
  ename_table('a'):='a';
  dbms_output.put_line(ename_table.first);  --a
  dbms_output.put_line(ename_table.last);   --b
end;


5.prior 返回当前集合元素的前一个元素下标(没有时返回null)
next 返回当前集合元素的后一个元素下标(没有时返回null)

declare 
  type ename_table_type is table of emp.ename%type index by varchar2(10);  --varchar2需要定义长度
  ename_table ename_table_type;
begin
  ename_table('b'):='b';
  ename_table('a'):='a';
  ename_table('c'):='c';
  ename_table('d'):='d';
  dbms_output.put_line(ename_table.prior('c'));  --b
  dbms_output.put_line(ename_table.next('d'));   --null
end;


6.extend 增加元素,只对嵌套表和数组,增加数组元素的时候,不能超过数组最大个数
extend --增加1个元素,元素值为null
extend(n) --增加n个元素,元素值为null
extend(n,i) --增加n个元素,元素值跟第i个元素值相同

declare 
  type ename_table_type is varray(10) of emp.ename%type;
  ename_table ename_table_type:=ename_table_type('2','1');
begin
  ename_table.extend(3,1); 
  dbms_output.put_line(ename_table(4));  --1
end;


7.trim 从集合尾部删除元素,只对嵌套表和数组
trim 从集合尾部删除一个元素
trim(n) 从集合尾部删除n个元素

declare 
  type ename_table_type is varray(10) of emp.ename%type;
  ename_table ename_table_type:=ename_table_type('2','1');
begin
  ename_table.trim; 
  dbms_output.put_line(ename_table(2));  --报错下标超出数量
end;


8.delete 删除集合元素,只适用于索引表和嵌套表
delete 删除全部元素
delete(n) 删除第n个元素
delete(m,n) 删除从m到n之间的所有元素

declare 
  type ename_table_type is table of emp.ename%type index by varchar2(10);  --varchar2需要定义长度
  ename_table ename_table_type;
begin
  ename_table('b'):='b';
  ename_table('a'):='a';
  ename_table('c'):='c';
  ename_table('d'):='d';
  ename_table.delete('f','c');
  dbms_output.put_line(ename_table.count);  --4
  ename_table.delete('a','c');
  dbms_output.put_line(ename_table.count);  --1
end;


分享到:
评论

相关推荐

    WinForm常用图标集合(非常全)

    包含大量的winform常用的一些小图标。开发过程中不需要自己去设计,直接拿来用,而且占用空间小。

    asp.net开发常用整理集合

     调用存储过程(两种方法比较)  调用存储过程通用类DBHelper  加密解密  SQL常用DBHelper  Asp.net存储过程无限分类  TreeView无限分类  无限分类MVC  荧光棒效果 获取控件上全选  回车转换成Tab ...

    Java集合框架使用总结

    本文是对Java集合框架做了一个概括性的解说,目的是对Java集合框架体系有个总体认识,如果你想学习具体的接口和类的使用方法,请参看Java API文档。 一、概述 数据结构对程序设计有着深远的影响,在面向过程的...

    java开发常用的类库集合

    java SQLServer2000 oracle数据库驱动程序 log4j日志 commons相关工具 自己在学习j2ee过程中下载的一些类库集合

    oracle存储过程常用技巧

    oracle存储过程常用技巧,包括:游标的处理,异常的处理,集合的选择等等

    C# winform web开发过程中常用Icon图标集合的经典素材。

    我是将网上的一些icon全部整合到一起的。去其糟粕,取其精华。

    ios开发有用的小代码集合

    ios开发中常用的小代码集合,工作开发过程中收集,非常适用。

    常用数据分析方法.docx

    常用数据分析方法: 1、聚类分析(Cluster Analysis) 聚类分析指将物理或抽象对象的集合分组成为由类似的对象组成的多个类的分析过程。聚类是将数据分类到不同的类或者簇这样的一个过程,所以同一个簇中的对象有很...

    这是本人学习过程中记录的一些代码!从Java基础的数据类型、修饰符、String类、IO、集合、线程等等到一些常用框架

    这是本人学习过程中记录的一些代码!从Java基础的数据类型、修饰符、String类、IO、集合、线程等等到一些常用框架

    centos 常用命令集合

    新手刚刚接触Linux的时候可能处处感到不便,不过没有关系,接触新的事物都有这样的一个过程,在你用过Linux一段时间后,你就会逐渐了解Linux其实和Windows一样容易掌握。

    RxTool 是 Android 开发过程经常需要用到各式各样的工具类集合

    Android开发人员不得不收集的工具类集合 | 支付宝支付 | 微信支付(统一下单) | 微信分享 | Zip4j压缩(支持分卷压缩与加密) | 一键集成UCrop选择圆形头像 | 一键集成二维码和条形码的扫描与生成 | 常用Dialog | ...

    数据式审计常用的数据分析方法.docx

    建立数据仓库的目的,是为了支持数据分析和决策制定过程。数据仓库中存储的数据是面向分析目标的经提炼、加工后的数据集合。这种数据的存储结构为OLAP数据式审计常用的数据分析方法全文共8页,当前为第4页。数据式...

    java面试中出现的面试题集合,基础集合,面试宝典.zip

    常用框架:如Spring、MyBatis等框架的使用方法和内部原理都有涉及。 数据库相关:包括关系型数据库和非关系型数据库的使用,以及JDBC、MyBatis等与数据库交互的技术。 实战项目经验:分享了几个经典的Java项目,解析...

    史上最全Java面试题目大集合

    18. 封装:封装是把过程和数据包围起来,19. 对数据的访问只能通过已定义的界面。面向对象计算始于这个基本概念,20. 即现实世界可以被描绘成一系列完全自治、封装的对象,21. 这些对象通过一个受保护的接口访问其他...

    微软常用运行库合集_2019.07.20_X64(含VC2015-2019).rar

    很多游戏和应用软件安装过程就提示缺少什么或者在运行的时候出现出错或提示缺少什么文件,很大部分都是系统没有好相应的常用且必要的运行库了,这个一次就搞定,这是目前64位可以说最全且最小巧的运行库集合,电脑...

    ANSYS中600条命令集合+通用分析过程.docx

    整理了一些ANSYS常用的命令!给大家参考下。 后面写了:对于不同物理性质和数学模型的问题,有限元求解法的基本步骤是相同的,只是具体公式推导和运算求解不同,具体步骤如文中。 最后还有些,边界条件及其他的心得...

    AE常用特效自学必备教程集合.docx

    学习的过程是痛苦的,得到的成功是喜悦的,希望大家可以互勉共同进步,也希望大家一起交流学习哦!AE我们一起学习

    java 程序员面试指南,常用面试题汇总解答.zip

    常用框架:如Spring、MyBatis等框架的使用方法和内部原理都有涉及。 数据库相关:包括关系型数据库和非关系型数据库的使用,以及JDBC、MyBatis等与数据库交互的技术。 实战项目经验:分享了几个经典的Java项目,解析...

    大数据常用的算法.docx

    Web数据挖掘是一项综合性技术,指Web 从文档结构和使用的集合C 中发现隐含的模式P,如果将C看做是输入,P 看做是输出,那么Web 挖掘过程就可以看做是从输入到输出的一个映射过程。 当前越来越多的Web 数据都是以数据...

    装机必备的微软常用运行库合集 2022微软Visual C++运行环境

    MSVBCRT AIO包含微软公司所有常用的运行库,可帮助您解决中国打开网络游戏或无法完全打开的软件的问题,从而提高解决方法由于运行库安装不完整、提示缺少相关文件等原因而也是导致出现某些会计软件打开时报告存在...

Global site tag (gtag.js) - Google Analytics