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')
 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值