嵌套表的测试(一)

近期在使用代码设计中涉及到了嵌套表的使用,使用过程中发现一次取数据,无法完全显示所有的字段内容。

整个测试过程如下:

建立测试表:

–建立相关type

create type mc$column_obj_type1 is object( column_source varchar2(30),
                                           column_name   varchar2(30));
create type mc$column_tab_type1 is table of mc$column_obj_type1;

–建立嵌套表

create table mc$etl_reference ( id         number,
                                column_map mc$column_tab_type1)
nested table column_map store as mc$column_map1;

–插入测试数据

insert into mc$etl_reference values ( 1,
                                      mc$column_tab_type1(mc$column_obj_type1('a','b'),
                                                          mc$column_obj_type1('c','d')));
insert into mc$etl_reference values ( 2,
                                      mc$column_tab_type1(mc$column_obj_type1('e','f'),
                                                          mc$column_obj_type1('g','h')));
insert into mc$etl_reference values ( 3,
                                      mc$column_tab_type1(mc$column_obj_type1('e1','f1'),
                                                          mc$column_obj_type1('g1','h1'),
                                                          mc$column_obj_type1('A1','C1')));

commit;

–显示表格数据

SQL> select * from mc$etl_reference;
 
        ID COLUMN_MAP
———- ———-
         1
         2
         3

可见,一次查询无法显示所需数据。

 

那么换种思路,直接加入对嵌套表的查询:

SQL> select e.id, c.* from mc$etl_reference e, table(e.column_map) c;
 
        ID COLUMN_SOURCE                  COLUMN_NAME
———- —————————— ——————————
         1 a                              b
         1 c                              d
         2 e                              f
         2 g                              h
         3 e1                             f1
         3 g1                             h1
         3 A1                             C1
 
7 rows selected

检查之后发现数据显示正常。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10009036/viewspace-1061455/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/10009036/viewspace-1061455/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值