Oracle PL/SQL中创建UDT的复合类型时,index by binary_integer 作用
如语句:type  numbers  is table of number index by binary_integer;其作用是,加了”index by binary_integer ”后,numbers类型的下标就是自增长,numbers类型在插入元素时,不需要初始化,不需要每次extend增加一个空间。
而如果没有这句话“index by binary_integer”,那就得要显示对初始化,且每插入一个元素到numbers类型的table中时,都需要先extend.
示例:
没加“index by binary_integer”时:

declare
 type numbers is table of number;
 n    numbers := numbers();
begin  
  n.extend;
   n(1) := 2;
  n.extend;
   n(2) := 3;
 
   for i in1 .. n.count loop
     dbms_output.put_line(n(i));
   end loop;
end;
输出:23

 
而如果加了“index by binary_integer”,代码如下写就可以达到上面的效果

declare
 type numbers is table of number index by binary_integer;
 n numbers;
begin
   n(1) := 2;
   n(2) := 3;
  
   for i in1 .. n.count loop
     dbms_output.put_line(n(i));
   end loop;
end;