小议如果构造数组

上一篇 / 下一篇  2008-07-10 09:40:54 / 个人分类:总结

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 的元素,不带参数删除整个数组元素


TAG:

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

日历

« 2008-09-07  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 3037
  • 日志数: 98
  • 建立时间: 2008-02-19
  • 更新时间: 2008-07-14

RSS订阅

Open Toolbar