Я создал 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 |