I DO NOT RECOMMEND THIS:
ops$tkyte%ORA11GR2> create type myvarray as varray(10000000) of number;
2 /
Type created.
ops$tkyte%ORA11GR2>
ops$tkyte%ORA11GR2> declare
2 x myvarray := myvarray();
3 begin
4 x.extend(10000000);
5 x(1) := 1;
6 x(10000000) := 10000000;
7 end;
8 /
PL/SQL procedure successfully completed.
it'll chew of ram like crazy..... varrays are not sparse!
use reasonable numbers.
ops$tkyte%ORA11GR2> drop type myvarray;
Type dropped.
ops$tkyte%ORA11GR2>
ops$tkyte%ORA11GR2> create type myvarray as varray(100000000) of number;
2 /
Type created.
ops$tkyte%ORA11GR2>
ops$tkyte%ORA11GR2> declare
2 x myvarray := myvarray();
3 begin
4 x.extend(100000000);
5 x(1) := 1;
6 x(100000000) := 100000000;
7 end;
8 /
declare
*
ERROR at line 1:
ORA-06500: PL/SQL: storage error
ORA-04030: out of process memory when trying to allocate 16328 bytes (koh-kghu
call ,pmucalm coll)
ORA-06512: at line 4
for that reason...