oracle怎么查询collection,oracle 集合collection

集合分类:

1、变长数组varray

create type varray_typ as varray(2) of varchar2(20);

2、嵌套表

create type nested_typ as table of varchar2(2)[or  other type];

1和2的混合体:多级集合。

oracle 10g新增的

3、关联数组。相当于MAP

type assoc_typ is table of number index by varchar2(12);

-----------------------------10g增加的其他特性(以下内容)

alter type varray_typ modify element type varchar2(90) cascade;--修改元素长度

alter type varray_typ modify limit 5 cascade;----增加数长度

一些方法

count

delete;elete(n );delete(n.m)

exists(n)

extend;extend(n);extend(n.m0;

first

last

next(n);

prior(n)--返回n个元素前面的序号

trim--删除最后的元素

trim(n);--删除后面的N个元素

一些关键运算符

= <>---类型相同,元素个相同,元素相同

in  not in

submultiset   一个嵌套表是否是另一个嵌套表的子集

---tb1 submultiset of tb2

multiset  |union |intersect|except  [all|distinct两个嵌套表的运算:并集,交,差。

cardinality ===count

------cardinality(nested_typ)

member of

set --取出重复元素

is a set  检查嵌套表中个元素是否各不相同

is empty

collect  把结果作为嵌套表返回

---select collect(xxxx) from tab

powermultiset 嵌套表的子集嵌套表

select * from table(powermultiset(nested_typ('1','2')));

powermultiset _by_cardinalit 定长的嵌套表子集

select * from table(powermultiset(nested_typ('1','2'')),1)

例子

SQL> CREATE OR REPLACE Type nest_typ As Table Of varchar2(16);

2  /

Type created.

SQL> Select * From

2  Table(nest_typ('1','2'));

COLUMN_VALUE

----------------

1

2

SQL> Select * From

2  Table(powermultiset(nest_typ('1','2')));

COLUMN_VALUE

--------------------------------------------------------------------------------

NEST_TYP('1')

NEST_TYP('2')

NEST_TYP('1', '2')

SQL> Select * From

Table(powermultiset_by_cardinality(nest_typ('1','2'),1));

COLUMN_VALUE

--------------------------------------------------------------------------------

NEST_TYP('1')

NEST_TYP('2')

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值