SQL2-запрос с равенством с использованием обратной косой черты

вопрос

У меня есть индекс свойства дуба на имущество somePath

Когда я выполняю SQL2-запросы к этому свойству, как показано ниже, я получаю результаты:

select * from [dam:Asset] as d 
where d.[jcr:content/metadata/somePath] = 'ABC'

Однако, когда я помещаю значения с обратной косой чертой в этот запрос, он не может найти никаких результатов, хотя в метаданных есть совпадения.

select * from [dam:Asset] as d 
where d.[jcr:content/metadata/somePath] =  'F:\path\to\somewhere.jpg' 

Весь контент правильно проиндексирован и индекс используется (отображается в объяснительном запросе)

Пробные

Оператор ESCAPE - ОТКАЗ

Я уже пытался использовать оператор ESCAPE из команды LIKE, но это не работает с простым оператором равенства.

Избегайте обратной косой черты (JCR SQL2) - СБОЙ

Когда я пытаюсь избежать обратной косой черты, как я нашел в какой-то темной документации jcr sql2 ('), я также не получаю результатов:

select * from [dam:Asset] as d 
where d.[jcr:content/metadata/somePath] =  "F:'\path'\to'\somewhere.jpg" 

Избегайте обратной косой черты (в стиле Java) - ОТКАЗ

Когда я пытаюсь избежать стиля Java с обратной косой чертой, я также не получаю никаких результатов:

select * from [dam:Asset] as d 
where d.[jcr:content/metadata/somePath] =  'F:\\path\\to\\somewhere.jpg' 

URL Кодировать обратную косую черту - СБОЙ

Применить кодировку URL к строке, без результатов:

select * from [dam:Asset] as d 
where d.[jcr:content/metadata/somePath] =  'F:%5Cpath%5Cto%5Csomewhere.jpg'

Используйте квадратные скобки, чтобы убежать от любых символов - СБОЙ

Оберните значение в квадратных скобках, как в случае с выражением where, оставленным операндом, без результатов (как с кавычками, так и без них):

select * from [dam:Asset] as d 
where d.[jcr:content/metadata/somePath] =  [F:\path\to\somewhere.jpg]

CAST значение в String - FAILURE

Приведите значение явно к String, без результатов:

select * from [dam:Asset] as d 
where d.[jcr:content/metadata/somePath] =  CAST('F:\path\to\somewhere.jpg' AS STRING)

Используйте оператор CONTAINS - ВРЕМЕННОЕ РЕШЕНИЕ

Когда я использую CONTAINS, я получаю результаты, но я хотел бы избежать этого, если это возможно.

select * from [dam:Asset] as d 
where ISDESCENDANTNODE(d, '/content/dam') AND CONTAINS(d.* , 'F:\path\to\somewhere.jpg')

Любые идеи о том, как SQL2 обрабатывает значения свойств с обратной косой черты?

0 ответов

Другие вопросы по тегам