集合的方法
除了构造函数外,集合还有很多内建函数,这些函数称为方法。调用方法的语法如下:
collection.method
下表中列出oracle中集合的方法
| 方法 |
描述 |
使用限制 |
| COUNT |
返回集合中元素的个数 |
|
| DELETE |
删除集合中所有元素 |
|
| DELETE() |
删除元素下标为x的元素,如果x为null,则集合保持不变 |
对VARRAY非法 |
| DELETE(,) |
删除元素下标从X到Y的元素,如果X>Y集合保持不变 |
对VARRAY非法 |
| EXIST() |
如果集合元素x已经初始化,则返回TRUE, 否则返回FALSE |
|
| EXTEND |
在集合末尾添加一个元素 |
对Index_by非法 |
| EXTEND() |
在集合末尾添加x个元素 |
对Index_by非法 |
| EXTEND(,) |
在集合末尾添加元素n的x个副本 |
对Index_by非法 |
| FIRST |
返回集合中的第一个元素的下标号,对于VARRAY集合始终返回1。 |
|
| LAST |
返回集合中最后一个元素的下标号, 对于VARRAY返回值始终等于COUNT. |
|
| LIMIT |
返回VARRY集合的最大的元素个数,对于嵌套表和对于嵌套表和Index_by为null |
Index_by集合无用 |
| NEXT() |
返回在元素x之后及紧挨着它的元素的值,如果该元素是最后一个元素,则返回null. |
|
| PRIOR() |
返回集合中在元素x之前紧挨着它的元素的值,如果该元素是第一个元素,则返回null。 |
|
| TRI M |
从集合末端开始删除一个元素 |
对于index_by不合法 |
| TRIM() |
从集合末端开始删除x个元素 |
对index_by不合法 |
关于集合之间的比较
集合不能直接用于比较,要比较两个集合,可以设计一个函数,该函数返回一个标量数据类型。
IF stock_list1>stock_list2 ----非法 IF sort_collection(stock_list1)>sort_collection(stock_list2) THEN --合法
|
但可以比较在集合内的两个元素。 |