微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

对Oracle SQL中的嵌套表感到困惑

如何解决对Oracle SQL中的嵌套表感到困惑

我已将图像附加到SQL查询中,在嵌套表的Oracle文档中提到了该SQL查询以及如何从表中访问条目。但是我不明白那里使用的SELECT语句。有人可以向我解释其中使用的SELECT查询的实际含义吗?Screenshot of Oracle SQL documentation on Nested Tables

使用nesTED TABLE列创建一个表,

CREATE OR REPLACE TYPE my_tab_t AS TABLE OF VARCHAR2(30);
/
CREATE TABLE nested_table (id NUMBER,col1 my_tab_t)
nesTED TABLE col1 STORE AS col1_tab;

将数据插入表中,

INSERT INTO nested_table VALUES (1,my_tab_t('A'));
INSERT INTO nested_table VALUES (2,my_tab_t('B','C'));
INSERT INTO nested_table VALUES (3,my_tab_t('D','E','F'));
COMMIT;

我无法获得的SQL查询

SELECT id,COLUMN_VALUE FROM nested_table t1,TABLE(t1.col1) t2;

结果显示

    ID COLUMN_VALUE

     1 A
     2 B
     2 C
     3 D
     3 E
     3 F

已选择6行。

解决方法

语法FROM nested_table t1,TABLE(t1.col1) t2是CROSS JOIN的旧Oracle语法,您现在不应该使用它。写得更好

FROM nested_table t1 
   CROSS JOIN TABLE(t1.col1) t2

CROSS JOIN意味着,您将t1的每一行与t2的每一行合并。您应该在互联网上找到许多解释。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。