Oracle VARRAY的实际应用简介


  本文标签:Oracle VARRAY

  Oracle VARRAY(变长数组)通俗的讲就是一个存储有序的元素集合,而其每个元素都有一个相关索引,该索引相对应元素在数组中的位置  。变长数组存在大小的限制,但是可以动态进行更改  。

  创建变长数组语句:

  

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

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

  

  1. create table person3  
  2. (  
  3. id integer constraint person3_pk primary key,  
  4. first_name varchar(20),  
  5. last_name varchar(20),  
  6. phone varray_phone  
  7. )  

  

  填充变长数组

  

  1. insert into person3 values(1,yuan,weixiang,varray_phone(12345,34567,56789));  
  2. SQL> select * from person3;  
  3. ID FIRST_NAME LAST_NAME PHONE  

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

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

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

  

  1. insert into person3 values(2,hao,lihai,varray_phone());  
  2. SQL> select * from person3;  
  3. ID FIRST_NAME LAST_NAME PHONE  

  

  1 yuan weixiang VARRAY_PHONE(12345, 34567, 56789)

  2 hao lihai VARRAY_PHONE()

  修改变长数组中的元素

  

  1. update person3 set phonevarray_phone(12345,34567) where id = 2;  
  2. ID FIRST_NAME LAST_NAME PHONE  

  

  1 yuan weixiang VARRAY_PHONE(12345, 34567, 56789)

  2 hao lihaiOracle VARRAY_PHONE(12345, 34567)

  数据字典

  user_varrays表

  all_varrays表

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

  

  1. Alter type varray_phone  
  2. modify element type varchar2(60) cascade  

  

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

  修改变长数组元素的数目

  

  1. alter type varray_phone modify limit 5 cascade 

  上述的相关内容就是对Oracle VARRAY的描述,希望会给你带来一些帮助在此方面  。