oracle-集合常用方法

时间:2021-01-31 07:46:48
oracle:
采用bulk collect可以将查询结果一次性地加载到collections中。
而不是通过cursor一条一条地处理。
可以在select into,fetch into,returning into语句使用bulk collect。
注意在使用bulk collect时,所有的into变量都必须是collections.

local index 和 global index:
我们可以通过local选项为分区表创建local index,并通过dba_part_indexes.locality来查看其属性,或者通过dba_ind_partitions来查看索引分区的内容.
如果执行计划选择了走索引,那么在每次交换分区以后,global index是不可用的,必须重建。
如果执行计划选择了走索引,local index会以PARTITION RANGE SINGLE的方式,进行索引范围扫描,而Global则是单纯的范围扫描。


ORACLE集合常用方法:
集合方法
pl/sql预定义了在varray 和嵌套表实例上进行调用的方法。这些方法能在集合上执行一定的功能。
EXISTS
该函数返回集合中第一个元素的索引,如果集合为空,返回NULL
Collection.EXISTS(index)

COUNT
该函数集合元素的数目
Collection.COUNT

DELETE
该过程从嵌套表中删除一个或多个或合部元素
Table_name.DELETE 删除所有元素
Table_name.delete(index)删除指定索引的记录
Table_name.delete(start_index,end_index)删除区间内元素

FIRST
返回集合第一个元素索引,如果集合为空,返回NULL
Collection.FIRST

LAST
返回集合中最后一个元素索引,如果集合为空,返回NULL
Collection. LAST

NEXT
返回集合当前元素的下一个元素的索引,如果它不存在就返回NULL
Collection. NEXT

PRIOR
返回集合当前元素的上一个元素的索引,如果它不存在就返回NULL
Collection. PRIOR

LIMIT
返回varray中创建元素的最大个数
Collection. LIMIT

EXTENDS
该过程在集合的末尾添加新的元素
Collection.EXTEND添加一个NULL元素;Collection.extends(n)添加N个NULL元素,Collection.extend(n,index)添加由index指定位置上元素的n个副表

TRIM
从集合末尾处删除元素
Collection.TRIM 删除最后一个元素
Collection.TRIM(n)删除最后N个元素

数据加中的集合
与 index-by表不同,varray和嵌套表可以作为对象-关系表中的珍存储在数据库中。它们也可以作为对象关系表中的列使用。为了表示出作为数据库列的数据类型,集合类型必须是在pl/sql和sql中可见。这需要使用create or replace type 语句定义而不能仅在pl/sql块中进行局部定义。语法如下:
create of replace type table_name is table of data_type