在寫存儲過程中看到這樣定義數組的寫法,如語句:type my_number_arr is table of number index by binary_integer;其作用是,加了”index by binary_integer ”後,my_number_arr類型的下標就是自增長,my_number_arr類型在插入元素時,不需要初始化,不需要每次extend增加一個空間。
而如果沒有這句話“index by binary_integer”,那就得要顯示對初始化,且每插入一個元素到numbers類型的table中時,都需要先extend.
示例:
沒加“index by binary_integer”時:
declare
type my_number_arr is table of number;
n my_number_arr:= my_number_arr();
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;
輸出:2,3
而如果加了“index by binary_integer”,代碼如下寫就可以達到上面的效果
declare
type my_number_arr is table of number index by binary_integer;
n my_number_arr;
begin
n(1) := 2;
n(2) := 3;
for i in1 .. n.count loop
dbms_output.put_line(n(i));
end loop;
end;