记录的index表介绍

index表定义:

TYPE type_name IS TABLE OF element_type [NOT NULL] INDEX BY BINARY_INTERGET;

例如:
1、TYPE   emp_type_array   IS   TABLE   OF   number   INDEX   BY   BINARY_INTEGER;

2、TYPE   emp_type   IS   RECORD  
  (   emp_id   employee_table.emp_id%TYPE,  
  emp_name   employee_table.emp_name%TYPE,  
  emp_gender   employee_table.emp_gender%TYPE   ); 
  TYPE   emp_type_array   IS   TABLE   OF   emp_type   INDEX   BY   BINARY_INTEGER;    

这里面重要的关键字是INDEX BY BINARY_INTERGET,没有这个关键字,那么集合将是一个嵌套表。
element_type可以是任何合法的PL/SQL数据类型,包括:PLS/INTEGER、SIGNTYPE、和BOOLEAN。
其他的集合类型对数据库的数据类型都有限制,但Index_by表不能存储在数据库中,所以没有这些限制。

记录的定义——  b、记录的使用.txt

记录的index-by表:
注意:赋值
方法一:
DECLARE  
   
  TYPE   emp_type   IS   RECORD  
  (   emp_id   employee_table.emp_id%TYPE,  
  emp_name   employee_table.emp_name%TYPE,  
  emp_gender   employee_table.emp_gender%TYPE   );  
   
  TYPE   emp_type_array   IS   TABLE   OF   emp_type   INDEX   BY   BINARY_INTEGER;  
   
  emp_rec_array   emp_type_array;  
  emp_rec   emp_type;  
   
  BEGIN  
  emp_rec.emp_id   :=   300000000;  
  emp_rec.emp_name   :=   'Barbara';  
  emp_rec.emp_gender   :=   'Female';  
   
  emp_rec_array(1)   :=   emp_rec;  
   
  emp_rec.emp_id   :=   300000008;  
  emp_rec.emp_name   :=   'Rick';  
  emp_rec.emp_gender   :=   'Male';  
   
  emp_rec_array(2)   :=   emp_rec;  
   
  FOR   i   IN   1..emp_rec_array.count   LOOP  
  DBMS_OUTPUT.PUT_LINE('i='||i  
  ||',   emp_id   ='||emp_rec_array(i).emp_id  
  ||',   emp_name   ='||emp_rec_array(i).emp_name  
  ||',   emp_gender   =   '||emp_rec_array(i).emp_gender);  
  END   LOOP;    
   
  END; 
--------------   Result   --------------  
  i=1,   emp_id   =300000000,   emp_name   =Barbara,   emp_gender   =   Female  
  i=2,   emp_id   =300000008,   emp_name   =Rick,   emp_gender   =   Male

方法二:
DECLARE  
   TYPE   emp_type   IS   RECORD  
  (   emp_id   employee_table.emp_id%TYPE,  
  emp_name   employee_table.emp_name%TYPE,  
  emp_gender   employee_table.emp_gender%TYPE   ); 
 
  TYPE   ArtSort   is   table   of   emp_type   index   by   binary_integer;  
          vSort   ArtSort;  
          nSortIndex   binary_integer;  
          cursor   c   is  
              select   *   from   table1;  
  使用:  
              nSortIndex   :=   0;  
              for   r   in   c   loop  
                  nSortIndex   :=   nSortIndex   +   1;  
                  vSort(nSortIndex).emp_id     :=   r.gid;  
                  vSort(nSortIndex).emp_name     :=   r.name;    
              end   loop;
 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/14613712/viewspace-616670/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/14613712/viewspace-616670/

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值