1、一维数组
SQL> set serveroutput on
SQL>
SQL> declare
2 type tvar_sz is varray(5) of number;
3 var_sz tvar_sz;
4 begin
5 var_sz := tvar_sz(1, 2, 3, 4, 5);
6 for i in 1 .. var_sz.count loop
7 dbms_output.put_line(var_sz(i));
8 end loop;
9 end;
10 /
1
2
3
4
5
PL/SQL procedure successfully completed
2、二维数组
SQL> declare
2 type tvar_sz is varray(5) of number;
3 type v_sz is varray(4) of tvar_sz;
4 var_sz v_sz;
5 begin
6 var_sz := v_sz(tvar_sz(1, 2, 3, 4, 5),
7 tvar_sz(1, 2, 3, 4, 5),
8 tvar_sz(1, 2, 3, 4, 5),
9 tvar_sz(1, 2, 3, 4, 5));
10 for i in 1 .. var_sz.count loop
11 for j in 1 .. var_sz(i).count loop
12 dbms_output.put_line(var_sz(i) (j));
13 end loop;
14 end loop;
15 end;
16
17 /
1
2
3
4
5
1
2
3
4
5
1
2
3
4
5
1
2
3
4
5
PL/SQL procedure successfully completed
首先你需要定义一个数组类型,然后定义这个数组变量
declare
type a_type is table of number;
-- type a_type is array(10) of number;
-- 下面一种定义方式则指定了该数组的最大元素个数
a a_type := a_type(); -- 定义并初始化一个数组变量
begin
a.extend(3); -- 数组扩展到3个元素
a(1) := 1;
a(2) := 10;
a(3) := 100;
end;
另外数组还有一下方法和属性
first -- 第一个元素下标
last -- 最后一个元素下标
count -- 数组元素个数
prior(n) -- 下标 n 的前一个元素下标
next(n) -- 下标 n 后一个元素下标
extend(n) -- 添加 n 个数组元素,不带参数添加一个数组元素
delete(n) -- 删除数组中下标为 n 的元素,不带参数删除整个数组元素
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10742223/viewspace-374869/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/10742223/viewspace-374869/