oracle 集合 index table

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():返回集合对象最后一个元素的下标


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值