Oracle VARRAY(变长数组)通俗的讲就是一个存储有序的元素集合,而其每个元素都有一个相关索引,该索引相对应元素在数组中的位置。变长数组存在大小的限制,但是可以动态进行更改。
创建变长数组语句:
CreateTypevarray_phoneasvarray(3)ofvarchar2(50);
接下来应用这个变长数组,先创建一个人员表,人员表中拥有一列电话,类型是变长数组,意思是这个人,可能有一个电话号码,也可能有2个,最多3个。
createtableperson3 ( idintegerconstraintperson3_pkprimarykey, first_namevarchar(20), last_namevarchar(20), phonevarray_phone )
填充变长数组
insertintoperson3values(1,'yuan','weixiang',varray_phone('12345','34567','56789')); SQL>select*fromperson3; IDFIRST_NAMELAST_NAMEPHONE
1 yuan weixiang Oracle VARRAY_PHONE(‘12345’, ‘34567’, ‘56789’)
表明该用户拥有3个电话号码。
当什么内容不添加的时候,查询结果如下:
insertintoperson3values(2,'hao','lihai',varray_phone()); SQL>select*fromperson3; IDFIRST_NAMELAST_NAMEPHONE
1 yuan weixiang VARRAY_PHONE(‘12345’, ‘34567’, ‘56789’)
2 hao lihai VARRAY_PHONE()
修改变长数组中的元素
updateperson3setphone=varray_phone('12345','34567')whereid=2; IDFIRST_NAMELAST_NAMEPHONE
1 yuan weixiang VARRAY_PHONE(‘12345’, ‘34567’, ‘56789’)
2 hao lihaiOracle VARRAY_PHONE(‘12345’, ‘34567’)
数据字典
user_varrays表
all_varrays表
修改变长数组的元素的长度大小
Altertypevarray_phone modifyelementtypevarchar2(60)cascade
cascade选项把更改传播到数据库中的依赖对象 Person3就是依赖对象
修改变长数组元素的数目
altertypevarray_phonemodifylimit5cascade
相关文章
标签:Oracle