Экранирование специальных символов в запросе MDX
Я строю информационную панель BI для своего клиента. Наши данные хранятся в кубе сервера анализа. В целом все работает отлично, но тестер smartalec решил создать торговца с именем `~!@#$%^&*()_+-=[]{}|;':"<>?,./ Имя очень хорошо отображается как часть результата запроса, но если пользователь пытается перейти к продавцу, мы, конечно, взорвемся b/c, \ {; [ "все являются частью MDX. Есть ли способ избежать этих персонажей? Я пытался поставить \ перед или удвоить характер. Я искал повсюду, но ничего не нашел.
ТИА
2 ответа
Вы должны использовать обозначение [] для своих имен и экранировать (только) правую скобку. Вот пример объявления вычисляемой меры с именем для экранирования (обратите внимание на]]):
with member [`~!@#$%^&*()_+-=[]]{}|;':"<>?,./] as 42
select [`~!@#$%^&*()_+-=[]]{}|;':"<>?,./] on 0 from [cube]
Не могли бы вы попробовать использовать [ ] скобки? Я думаю, что это должно помочь. Но вы также должны "убежать" от своих собственных скобок.
Если тело идентификатора содержит только левую скобку ([), дополнительная обработка не требуется. Если тело идентификатора содержит правую скобку (]), необходимо указать две правые скобки (]]).