oracle嵌套表

嵌套表 类似于JAVA中的ArrayList,动态数组。 嵌套表是表中之表。 一个嵌套表是某些行的集合,它在主表中表示为其中的一列。 语法:TYPE ... IS TABLE OF type[not null] 创建嵌套表步骤: ? 创建一个对象类型作为嵌套表的基类型 ? 基于基类型创建嵌套表的基础类型 基于该基础类型创建嵌套表 假设有一个关于动物饲养员的表,希望其中具有他们饲养的动物的信息。 用一个嵌套表,就可以在同一个表中存储饲养员和其饲养的全部动物的信息。 步骤1创建一个对像类型,存放饲养动物的信息 CREATE TYPE annimal_ty AS OBJECT ( breed varchar2(25), name varchar2(25), birthdate date ) 步骤2基于以上对象类型,创建一个嵌套表基础类型 CREATE TYPE annimal_ny IS TABLE OF annimal_ty; 步骤三创建嵌套表 CREATE TABLE breeder ( breedername varchar2(25), animals annimal_ny )nested table animals store as annimal_ty_tab; 向该嵌套表插入数据 INSERT INTO breeder (breedername,animals) VALUES ( 'TIGER',annimal_ny(annimal_ty('dog','jack',to_date('2011-07-09','YYYY-MM-DD')), annimal_ty('cat','jas',to_date('2011-07-09','YYYY-MM-DD'))) ) INSERT INTO breeder VALUES ( 'LEE',annimal_ny(annimal_ty('LION','BOST',TO_DATE('2011-07-09','YYYY-MM-DD')), annimal_ty('FISH','HEBI',TO_DATE('2011-07-09','YYYY-MM-DD'))) ) 查询数据: --1用table函数 SELECT BREEDERNAME,N.breed,N.name,N.birthdate FROM BREEDER,TABLE(BREEDER.animals) N --2 select name,birthdate from table(select animals from breeder where breedername='LEE') 转自:http://blog.csdn.net/guye1986/article/details/6523861
posted @ 2012-09-20 22:07  therockthe  阅读(538)  评论(0)    收藏  举报