码迷,mamicode.com
首页 > 数据库 > 详细

PLSQL中的内存表--Index By Table

时间:2016-06-24 20:45:13      阅读:477      评论:0      收藏:0      [点我收藏+]

标签:plsql

其实内存表有点类似于java中的数组,但是它有比起数组更强大的地方。

1.首先来简单介绍内存表的作用:

  •   使用BINARY_INTEGER 类型构成的索引主键

  •    简单类型 或者用户自定义类型的字段作为具体的数组元素

2.如何来使用内存表类型呢?

      定义内存表类型

        TYPE type_name IS  TABLE OF 存储类型(number , employees.last_name%TYPE , employees%ROWTYPE , varchar2)    


             INDEX BY (BINARY_INTEGER,varchar2(80)..) 

               ---varchar2(80)表示下标可以通过字符串来访问,这比java中数组功能强大

     声明该类型变量

         identifier  type_name


3.内存表中的一些属性和方法

   赋值:

        identifier(1) := ‘Jams‘    --这是index by binary_integer

        identifier(‘A‘) := ‘Jams‘  -- 这是index by varchar2

       与java中数组区别就是内存表可以用字符串作为下标

    count方法:

         identifier.count  --返回内存表中行的数目

    exists方法:

        identifier.exists(1) --判断下标为1的元素存不存在

    first 和 last属性:

        first:返回第一行的索引

        last: 返回最后一行的索引

first 和 last的用法:

  一般使用在遍历内存表的情况

for i in identifier.first .. identifier.last  loop

 ............
end loop

这里必须注意两点:

   1.如果内存表中没有任何数据,但是你却通过这种方式遍历它,会报错,所以在遍历前应该用

count方法来做一次判断

    2.假如内存表中的数据下标不连续怎么办?

比如 内存表只有identifier(2), identifier(5),

当遍历到下标为1,3,4时,要做异常或报错处理,否则会报错。


这里附带上INDEX BY BINARY_INTEGER的作用

    --http://blog.itpub.net/26690043/viewspace-722081/



本文出自 “11768293” 博客,请务必保留此出处http://11778293.blog.51cto.com/11768293/1792626

PLSQL中的内存表--Index By Table

标签:plsql

原文地址:http://11778293.blog.51cto.com/11768293/1792626

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!