问题描述
我已将图像附加到SQL查询中,在嵌套表的Oracle文档中提到了该SQL查询以及如何从表中访问条目。但是我不明白那里使用的SELECT语句。有人可以向我解释其中使用的SELECT查询的实际含义吗?Screenshot of Oracle SQL documentation on Nested Tables
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
的每一行合并。您应该在互联网上找到许多解释。