Убрать кавычки из условия WHERE

В мой запрос к БД попадает параметр string, содержащий набор чисел:

where id in ('224994, 226010, 225632, 225730, 225319') 

Каким образом я могу убрать одинарные кавычки непосредственно внутри запроса в Oracle? Я понимаю, что скорее всего необходимо использовать replace, но не понимаю, как экранировать ординарные кавычки.


Ответы (2 шт):

Автор решения: Виталий Яндулов

Попробуй распарсить строку:

WHERE col_id IN (SELECT to_number(regexp_substr(t.val, '[^,]+', 1, LEVEL)) AS num
                   FROM (SELECT '224994, 226010, 225632, 225730, 225319' val FROM dual) t
                CONNECT BY LEVEL <= length(t.val) - length(REPLACE(t.val, ',', '')) + 1)
→ Ссылка
Автор решения: EkaterinaSS

действительно не понятен контекст, если запрос выполняется непосредственно на БД оракл, можно использовать динамический SQL:

execute immediate 'select ... where id in (' ||vstring|| ')';

→ Ссылка