变长数组

来源:互联网 发布:淘宝自定义区怎么设置 编辑:程序博客网 时间:2024/05/01 07:53


  变长数组:是一个存储有序元素的集合,每个元素都有一个索引,该索引相对应元素在数组中的位置。变长数组存在大小的限制,但是可以动态进行更改。

  创建变长数组语句:

  Create Type varray_phone as varray(3) of  varchar2(50);

  接下来应用这个变长数组,先创建一个人员表,人员表中拥有一列电话,类型是变长数组,意思是这个人,可能有一个电话号码,也可能有2个,最多3个。

  create table person3

  (

  id integer constraint person3_pk primary key,

  first_name varchar(20),

  last_name varchar(20),

  phone varray_phone

  )

  --填充变长数组

  insert into person3 values(1,'yuan','weixiang',varray_phone('12345','34567','56789'));

  SQL> select * from person3;

  ID FIRST_NAME           LAST_NAME            PHONE

  ---------- -------------------- -------------------- ----------------------------------------------------

  1 yuan                          weixiang               VARRAY_PHONE('12345', '34567', '56789')

  表明该用户拥有3个电话号码。

  当什么内容不添加的时候,查询结果如下:

  insert into person3 values(2,'hao','lihai',varray_phone());

  SQL> select * from person3;

 ID FIRST_NAME           LAST_NAME            PHONE

  ---------- -------------------- -------------------- -----------------------------------------------------

  1        yuan                    weixiang             VARRAY_PHONE('12345', '34567', '56789')

  2        hao                       lihai                     VARRAY_PHONE()

  修改变长数组中的元素

  update person3 set phone= varray_phone('12345','34567') where id = 2;

  ID FIRST_NAME           LAST_NAME            PHONE

  ---------- -------------------- -------------------- ------------------------------------------------------

  1        yuan                    weixiang             VARRAY_PHONE('12345', '34567', '56789')

  2        hao                       lihai                    VARRAY_PHONE('12345', '34567')

  数据字典

  user_varrays表

  all_varrays表

  修改变长数组的元素的长度大小

  Alter type varray_phone

  modify element type varchar2(60) cascade

  cascade选项把更改传播到数据库中的依赖对象 Person3就是依赖对象

  修改变长数组元素的数目

  alter type varray_phone modify limit 5 cascade

      变长数组的基本使用:http://www.cnblogs.com/Azhu/archive/2012/04/16/2452781.html

  

0 0