嵌套表的测试(一)

浏览: 2132

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

整个测试过程如下:

建立测试表:

–建立相关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;

Clipboard Image.png

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


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

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

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

推荐 0
本文由 newkoa 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

0 个评论

要回复文章请先登录注册