ORACLE数据库集合类型示例

declare
  --------类型定义
  --类型1
  type t_array1 is varray(20) of varchar2(30);
  --类型2
  type t_array2 is table of varchar2(20) index by binary_integer;
  --类型3
  type t_array3 is table of varchar2(30) index by varchar2(10);

  --------变量定义
  --数组1,初始化赋值
  l_array1 t_array1 := t_array1('a', 'b', 'c', 'd', 'e');
  --数组2
  l_array2 t_array2;
  --数组3
  l_array3 t_array3;
  --数组3 key
  l_array3_key varchar2(10);
begin

  dbms_output.put_line('*********Array1 Start**************');
  for i in 1 .. l_array1.count loop
    dbms_output.put_line('Index:' || i || ',Value:' || l_array1(i));
  end loop;

  l_array2(1) := '中';
  l_array2(2) := '国';
  l_array2(3) := '人';
  --跳过4
  l_array2(5) := '很多';
  l_array2(100) := '很多的';
  l_array2(6) := '最后一个值';
  dbms_output.put_line('*********Array1 Finish*************');
  dbms_output.put_line('*********Array2 Start**************');
  for i in 1 .. l_array2.count loop
  
    begin
      dbms_output.put_line('Index:' || i || ',Value:' || l_array2(i));
    exception
      when others then
        dbms_output.put_line('Exception:' || sqlerrm || ',When index:' || i);
        goto con;
    end;
    <<con>>
    null;
  end loop;

  dbms_output.put_line('*********Array2 Finish*************');

  l_array3('北京') := '区号010';
  l_array3('广州') := '区号020';
  l_array3('上海') := '区号021';
  l_array3('天津') := '区号022';
  l_array3('重庆') := '区号023';

  dbms_output.put_line('*********Array3 Start**************');
  l_array3_key := l_array3.first;
  loop
    exit when l_array3_key is null;
    dbms_output.put_line(l_array3_key || ',' || l_array3(l_array3_key));
    l_array3_key := l_array3.next(l_array3_key);
  end loop;
  dbms_output.put_line('*********Array3 Finish*************');
end;





----结果如下
*********Array1 Start**************
Index:1,Value:a
Index:2,Value:b
Index:3,Value:c
Index:4,Value:d
Index:5,Value:e
*********Array1 Finish*************
*********Array2 Start**************
Index:1,Value:中
Index:2,Value:国
Index:3,Value:人
Exception:ORA-01403: no data found,When index:4
Index:5,Value:很多
Index:6,Value:最后一个值
*********Array2 Finish*************
*********Array3 Start**************
上海,区号021
北京,区号010
天津,区号022
广州,区号020
重庆,区号023
*********Array3 Finish*************

你可能感兴趣的:(oracle)