小议如果构造数组

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/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值