日期:2014-05-16  浏览次数:20754 次

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?phone=?varray_phone('12345','34567')?where?id?=?2; ?
  2. ID?FIRST_NAME?LAST_NAME?PHONE ?

?

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