PL/SQL复习五 集合方法

1.exists:判断某集合元素是否存在

declare

  type ename_table_type is table of emp.ename%type;

  ename_table ename_table_type;

begin

  if ename_table.exists(1) then

    dbms_output.put_line('存在');

    else

      dbms_output.put_line('不存在');

  end if;

end;

/

2.count:返回集合元素的个数 例如:ename_table.count

3.limit:返回该集合允许的最大元素个数 索引表和嵌套无边界所以返回null 例如:ename_table.limit

4.first、last:返回集合第一个和最后一个元素的下标 例如:ename_table.first

5.frior、next:返回当前集合元素的前、后一个元素的下标 例如:ename_table.frior(5)

6.extend:用于扩展集合变量的尺寸,只适用于嵌套表和varray,有如下形式

   extend:为集合变量添加一个null元素

   extend(n):为集合变量添加n 个null元素

   extend(n,i):为集合添加n个元素,元素值与第i个元素相同

7.trim:用于从集合尾删除元素, trim删除一个 trim(n)删除n个

8.delete 删除集合元素,只适用于嵌套和索引表

  delete:删除所有元素  delete(n) 删除第n 个元素  delete(m,n)删除集合变量从m到n之间的所有元素

 

给集合赋null值,只需将一个集合等于另一个没赋值的集合

 

 

集合操作符:

1.set:返回取消特定嵌套表中的重复值的嵌套表

declare

  type nt_table_type is table of integer;

  nt_table nt_table_type := nt_table_type(2,4,3,2,1);

  res nt_table_type;

begin

  res := set(nt_table);

  for i in 1..res.count loop

    dbms_output.put_line(res(i));

  end loop;

end;

/

2.multiset union:取得两个嵌套表的并集 用法:

  result = nt1 multiset union nt2;

3.multiset union distinct:取得并集,去掉重复值

     result = nt1 multiset union distinct nt2;

4.multiset intersect:取得交集

  result = nt1 multiset intersect nt2;

5.multiset except:取差集

  result = nt1 multiset except nt2;

 

 

集合的比较:

1. array_name is null:检测是否为空

2.ename_table1 = ename=table2:比较两个集合是否完全相同

嵌套表的:

3.cardinality:返回元素个数

4.submultiset of:是否是子表

5.member of:是否包含特定元素 v1 member of nt1 

6.is a set:检测是否包含重复元素值 nt1 is a set

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值