PLSQL中聚合使用笔记1

PLSQL中集合使用笔记1
PLSQL中集合使用笔记1

总体中PLSQL中的集合大致有:

1.索引表,也称为关联数组,可以让我们使用数字或字符串作下标来查找元素。(这有点和其他语言中的哈希表相类似。)
2.嵌套表可以容纳任意个数的元素,使用有序数字作下标。我们可以定义等价的SQL类型,把嵌套表存到数据库中去,并通过SQL语句进行操作。
3.变长数组能保存固定数量的元素(但可以在运行时改变它的大小),使用有序数字作为下标。同嵌套表一样,也可以保存到数据库中去,但灵活性不如嵌套表好。


理解嵌套表基本使用

在数据库中,嵌套表可以被当作单列的数据表来使用。Oracle在往嵌套表中存放数据时是没有特定顺序的。但是,当我们把检索出来的数据存放在PL/SQL变量时,所有行的下标就会从1开始顺序编号。这样,就能像访问数组那样访问每一行数据。
要点:
     1.1 从1开始,不是从0开始。且必须从1开始。
     1.2 没有上限,若是需要扩展,extend以下。
     1.3 定义语法:
        TYPE test IS TABLE OF varchar2(20);//定义个类型为字符串的嵌套表,表名:test。
    
     1.4 使用案例:将查询中的数据存放到嵌套表中:
--  定义嵌套表
           TYPE m_table IS TABLE OF varchar2(200);      --定义嵌套表  
          mp m_table := m_table();                     --新建一个类型

-- 定义游标        
              cursor c_test is
                   select p.testid from test_table p where p.roleid = '22';


-- 将数据放入嵌套表中
             for cc in c_test loop
                mp.extend;
                i_int := i_int + 1;
                mp(i_int) := cc.testid;
             end loop;

--循环遍历嵌套表
              for j in mp.first .. mp.last loop
                  dbms_out.put_line(j);
              end loop;