1、type index_table_type is table of element_type [not null] index by binary_integer | pls_integer | varchar2
not null 指定集合对象元素值不允许为空
index_table 只允许在plsql中使用,下标可以为负数,元素个数没限制
2、 使用例子
--binary_integer | pls_integer
Declare
Type index_table_type Is Table Of Varchar2(10) Not Null Index By Pls_Integer;
index_table_obj index_table_type;
strCur Varchar2(3);
Begin
index_table_obj(-1):='北京';
index_table_obj(0):='上海';
index_table_obj(1):='广州';
If index_table_obj.count>0 Then
dbms_output.put_line('--从第一个元素开始输出');
strCur:=index_table_obj.first();
Loop
dbms_output.put_line(index_table_obj(strCur));
Exit When strCur=index_table_obj.last();
strCur:=index_table_obj.next(strCur);
End Loop;
dbms_output.put_line('--从最后一个元素开始输出');
strCur:=index_table_obj.last();
Loop
dbms_output.put_line(index_table_obj(strCur));
Exit When strCur=index_table_obj.first();
strCur:=index_table_obj.prior(strCur);
End Loop;
End If;
End;
输出:
--从第一个元素开始输出
北京
上海
广州
--从最后一个元素开始输出
广州
上海
北京
--varchar2
Declare
Type index_table_type Is Table Of Varchar2(20) Not Null Index By Varchar2(3);
index_table_obj index_table_type;
strCur Varchar2(3);
Begin
index_table_obj('zj'):='浙江';
index_table_obj('bj'):='北京';
index_table_obj('sh'):='上海';
If index_table_obj.Count>0 Then
dbms_output.put_line('--从第一个元素开始输出');
strCur:=index_table_obj.First();
Loop
dbms_output.put_line('下标:'|| strCur||' 值:'||index_table_obj(strCur));
Exit When strCur=index_table_obj.Last;
strCur:=index_table_obj.Next(strCur);
End Loop;
dbms_output.put_line('--从最后一个元素开始输出');
strCur:=index_table_obj.Last();
Loop
dbms_output.put_line('下标:'|| strCur||' 值:'||index_table_obj(strCur));
Exit When strCur=index_table_obj.First;
strCur:=index_table_obj.Prior(strCur);
End Loop;
End If;
End;
输出:
--从第一个元素开始输出
下标:bj 值:北京
下标:sh 值:上海
下标:zj 值:浙江
--从最后一个元素开始输出
下标:zj 值:浙江
下标:sh 值:上海
下标:bj 值:北京
3、函数说明
1、Count:返回集合对象元素个数
2、First():返回集合对象第一个元素的下标
3、Prior():返回集合对象指定元素的前一个元素的下标
4、Next():返回集合对象指定元素的后一个元素的下标
5、Last():返回集合对象最后一个元素的下标