日期:2014-05-16 浏览次数:20754 次
Oracle VARRAY(变长数组)通俗的讲就是一个存储有序的元素集合,而其每个元素都有一个相关索引,该索引相对应元素在数组中的位置。变长数组存在大小的限制,但是可以动态进行更改。
创建变长数组语句:
?
- 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 Oracle 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')