Убрать кавычки из условия 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|| ')';