2024年4月18日发(作者:)

17 集合操作

17.1 集合方法

EXITS确定结合元素是否存在

COUNT用于返回集合元素中的总的个数, 如果集合元素值存在,则会返回个数。若集合元

素中的值为NULL,则不会统计。

DECLARE

TYPE ename_talbe_type IS TABLE OF ename_emp % TYPE INDEX BY BINARY_INTEGER;

ename_table ename_table_type;

BEGIN

ename_table(-1) = ‘Scott’;

ename_table(0) = ’Mary’;

ename_table(2) = ‘John’;

dbms__line( ‘The number of the table is ‘ || ename_);

END

LIMIT 用于返回集合中元素的最大个数。嵌套表和索引表中的元素个数没有限制,则返回

NULL,对于VARRAY中,则返回该表中允许的最大限制个数。

DECLARE

TYPE ename_talbe_type IS VARRAY(30) OF % TYPE;

ename_table ename_table_type := ename_talbe_type( ‘Mary’);

BEGIN

dbms__line(‘ MAX limit of THE table is :’ || ename_ );

END

FIRST 用于返回集合元素的第一个下标。LAST用于返回集合最后元素的下标。

DECLARE

TYPE ename_table_type IS TABLE OF % TYPE INDEX OF BINARY_INTEGER;

ename_table ename_table_type;

BEGIN

ename_table(-5) = ‘Scott’;

ename_table(1) = ‘Mary’;

ename_talbe(3) = ‘Bill’ ;

dbms__line( ‘The index of The first element is : ‘ || ename_);

dbms__line( ‘The index of The last element is : ‘ || ename_ );

END

同理,PRIOR 和NEXT返回前一个和后一个元素的下标。

EXTEND用于扩展集合的尺寸,并为增加元素。

只适用于嵌套表和VARRAY数组。

EXTEND,EXTEND(n),EXTEND(n,i)三种格式。 EXTEND添加一个元素,值为NULL;EXTEND(n)

添加n个值为NULL的元素;EXTEND(n,i)添加n个元素,值和i下标值得元素相等。

DECLARE

TYPE ename_table_type IS VARRAY(10) OF % TYPE;

ename_talbe ename_table_type;

BEGIN

ename_table := ename_table_type( ‘MARY’ );

ename_(5, 1) ;

dbms__line( ‘ ALL count is : ‘ || ename_ );

END

TRIM 用于从集合尾部删除元素。

TRIM,和TRIM(n)两种格式。

用法同理EXTEND。

DELETE用于删除集合的元素。

只适用于嵌套表和索引表。

三种引用格式,DELETE删除所有元素,DELETE(n)删除几个钟的下标为n的元素,DELETE(m ,n)

删除从m到n之间的元素。

DECLARE

TYPE ename_table_type IS VARRAY(20) OF VARCHAR2(12);

ename_table ename_talbe_type;

BEGIN

ename_talbe(2) = ‘Scott’;

ename_table(4) = ‘Mary’;

ename_talbe(10) = ‘Helen’;

ename_(10);

dbms__line( ‘ The current count is : ‘ || ename_);

END

17.2 集合的赋值

SET用于集合赋值,也可以取消某几个中的重复元素,再者当用于集合赋值的时候,需要两

个结合的属性完全一致。

declare

type nt_table_type is table of number;

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

result_table nt_table_type;

begin