Добавить строку в параметре без запятых в Oracle PlSql - PullRequest
0 голосов
/ 25 марта 2020

Я пытаюсь заменить значения переменной строкой строки, но мне нужно разделить эти строки запятой.

Это мой запрос:

SELECT * FROM RUOLI WHERE 1=1 AND ID IN ('RuoloASL1','Prova') ORDER BY DESCRIZIONE

и это работает хорошо, но если я хочу передать эти значения через параметр, подобный этому

SELECT * FROM RUOLI WHERE 1=1 AND ID IN (:RESULT) ORDER BY DESCRIZIONE

, это не работает, потому что в РЕЗУЛЬТАТЕ замените этот 'RuoloASL1, Prova'.

Мне нужно получить 'RuoloASL1', 'Prova' с одним параметром .. как я могу это сделать?

1 Ответ

0 голосов
/ 25 марта 2020

Если вы хотите сопоставить строку CSV, вы можете использовать like:

where ',' || :result || ',' like ',%' || id  || ',%'

или регулярное выражение:

where regexp_like(result, '^|,' || id || ',|$')

Но в целом было бы лучше передать столько параметров, сколько есть значений для сопоставления. Это будет намного эффективнее, чем использование строк или функций регулярных выражений.

...