У меня есть SELECT
, который довольно медленный, и я думаю, что он будет быстрым при использовании двух SELECT
вместо подвыбора или объединения.
В основном мне нужно выбрать некоторые числа из таблицыи использую их в выражении where другого SELECT
.
На данный момент у меня есть работа:
DECLARE
v_skus VARCHAR2(255);
BEGIN
SELECT LISTAGG(num,',') WITHIN GROUP (ORDER BY num) INTO v_skus FROM VIEWNAME WHERE parent IN ('1000');
DBMS_OUTPUT.PUT_LINE('v_skus=' || v_skus);
END;
Это даст мне '1001,1002
' в переменной.
Я хочу использовать это сейчас в другом SELECT, например
... WHERE number IN (v_skus)
Если я добавлю второй SELECT
в блок BEGIN
, я получу сообщение об ошибке "В этом случае ожидается предложение INTOОператор SELECT ".
Итак, нужно ли мне использовать другую переменную для фактического результата, и как мне добиться фактического результата в виде таблицы, как это сделал бы обычный SELECT
?
мой подход неверен?