Это проблема с различными элементами в списке IN;Вы не можете использовать эти значения в переменной , например (в виде строки) - вам придется разбить их на строки.
Вот пример:
SQL> select regexp_substr(x.rt_col, '[^,]+', 1, level) val
2 from (select rtrim(replace(replace('&&variable', '(', ''), ')', ''), ',') rt_col
3 from dual
4 ) x
5 connect by level <= regexp_count('&&variable', ',');
Enter value for variable: (0210110002),(0270100005),
old 2: from (select rtrim(replace(replace('&&variable', '(', ''), ')', ''), ',') rt_col
new 2: from (select rtrim(replace(replace('(0210110002),(0270100005),', '(', ''), ')', ''), ',') rt_col
old 5: connect by level <= regexp_count('&&variable', ',')
new 5: connect by level <= regexp_count('(0210110002),(0270100005),', ',')
VAL
--------------------------------------------------------------------------------
0210110002
0270100005
SQL>
- строка 2: удалить скобки и запятую
- строка 1 + строка 5: иерархический запрос, который разбивает оставшуюся строку (
0210110002,0270100005
) в строки
Это означает, что ваш запрос будет выглядеть так:
select * from table
where column in
(select regexp_substr(x.rt_col, '[^,]+', 1, level) val
from (select rtrim(replace(replace(:variable, '(', ''), ')', ''), ',') rt_col
from dual
) x
connect by level <= regexp_count(:variable, ',')
);