Я пытаюсь изменить существующий запрос, чтобы использовать REGEXP_LIKE, но нарушил синтаксис, который я неправильно понимаю. В настоящее время мы выполняем запрос CF в базу данных Oracle с использованием следующего:
result = QueryExecute("
SELECT paramOne, paramTwo FROM someTable WHERE fieldOne = :PUBLISHER
", {PUBLISHER=publisherId}, {datasource="someDB"});
, который работает. Однако я хочу изменить базовый запрос следующим образом:
result = QueryExecute("
SELECT paramOne, paramTwo FROM someTable WHERE REGEXP_LIKE(fieldOne, '(^|,)(:PUBLISHER)($|,)', 'i')
", {PUBLISHER=publisherId}, {datasource="someDB"});
, но он не дает ожидаемых результатов. Несколько вещей, которые я заметил при попытке отладки ...
Базовый запрос (без использования переменной) работает и был проверен в Oracle SQL
Если я go к исходному коду и заменим: ИЗДАТЕЛЬ на «жестко запрограммированное» значение, все будет работать как положено.
I ' мы пытались экранировать ':', но это не ответ.
Я упал, что что-то не понимаю в передаче переменных в выражение REGEX в queryExecute()
, поэтому буду признателен любому мысли.
Любой вклад с благодарностью получил, Фил