oracle 集合 index table

原创 2015年07月10日 00:47:44

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


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

oracle常用的复合数据类型 : BULK COLLECT(成批聚合类型)和数组集合type类型is table of 表%rowtype index by binary_integer

例1:批量 查询部门号为"10" 号的并把它们打印出来.DECLARE   TYPE emp_table_type IS TABLE OF my_emp%ROWTYPE ...

oracle 学习笔记(十一) 数据库常用对象, table ,constraint ,index ,view和数据字典

表:基本的数据存储对象,以行和列的形式存在,列是字段,行是记录。 数据字典:就是系统表,存放数据库相关信息的表。 约束条件:执行数据校验,保证了数据完整性的对象。 视图:一个或者多个表数据的逻辑显示。...

Oracle TABLE ACCESS BY INDEX ROWID 说明

一.  测试环境SQL> select * from v$version where rownum=1; BANNER-----------------------------------------...

oracle索引组织表(Index Organizied Table)

索引组织表(index organized table, IOT)就是存储在一个索引结构中的表。存储在堆中的表是无组织的(也就是说,只要有可用的空间,数据可以放在任何地方),IOT中的数据则按主键存储...

简述Oracle IOT(Index Organized Table)(下)

转载:http://space.itpub.net/17203031/viewspace-745600 下面我们讨论一下由于数据存储为索引而带来的Rowid、Secondary Inde...

简述Oracle IOT(Index Organized Table)(上)

转载:http://space.itpub.net/17203031/viewspace-744477 对关系型数据库产品(RDBMS)而言,一个重要特性就是:数据信息都被组织为二维数据...

ORACLE优化之执行规划(1) - TABLE FULL SCAN/INDEX FULL SCAN

ORACLE优化之执行规划(1) - TABLE FULL SCAN/INDEX FULL SCAN   TABLE FULL SCAN  全表扫描,表示表中所有记录都被访问到。如果表很大, ...

Oracle RDBMS: Extracting the Table, Index & View Definitions (DDL) and Indexed Columns

https://blogs.oracle.com/mandalika/entry/oracle_extracing_the_table_index (Reproducing a 30 month o...

Oracle index by table(Associative array) used in PostgreSQL

Oracle plSQL中支持3种集合变量, index-by table, varray, nest table。 其中index-by table是不限元素个数,支持字符串或INT下标。 用法...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)