我从选定的表格数据中创建了nested table
。
如何将嵌套表数据与普通(多个)表数据进行比较?嵌套表中的一个元素与普通表中的几个元素匹配。
嵌套表的代码:
DECLARE
TYPE spec_params_tbl IS TABLE OF NUMBER;
mstbl_spec_id spec_params_tbl;
BEGIN
SELECT spec_id
BULK COLLECT
INTO mstbl_spec_id
FROM
(SELECT spec_id
FROM spec_params
WHERE name_id = 19 AND value LIKE 'MS'
INTERSECT
SELECT spec_id
FROM spec_params
WHERE name_id = 36 AND value LIKE 'MSI%');
BEGIN
FOR i IN mstbl_spec_id.first..mstbl_spec_id.last LOOP
dbms_output.put_line(mstbl_spec_id(i));
END LOOP;
dbms_output.put_line('--- END NESTED TABLE---');
END;
END;
/
因此,在for循环中,我可以以某种方式放置查询吗?那给我每个mstbl_spec_id(i)
元素多次匹配吗?
(SELECT
在没有INTO
的情况下无法工作,只给出了一行)
结果如下:
| nested_id | table1_column_1 | table1_column_2 | table2_column_2 |
------------+-----------------+-----------------+------------------
| 1 | 3344 | 3333 | 4422 |
| 2 | 3344 | 4444 | 2244 |
| 3 | 5533 | 5555 | 3232 |