Экранирование специальных символов в запросе MDX - PullRequest
2 голосов
/ 03 ноября 2011

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

TIA

Ответы [ 2 ]

5 голосов
/ 04 ноября 2011

Вы должны использовать нотацию [] для своих имен и экранировать (только) правую скобку. Вот пример объявления вычисляемой меры с именем для экранирования (обратите внимание на]]):

with member [`~!@#$%^&*()_+-=[]]{}|;':"<>?,./] as 42
select [`~!@#$%^&*()_+-=[]]{}|;':"<>?,./] on 0 from [cube]
0 голосов
/ 03 ноября 2011

Не могли бы вы попробовать использовать [] скобки? Я думаю, что это должно помочь. Но вы также должны «убежать» от своих собственных скобок.

* MSDN 1004 *

Если тело идентификатора содержит только левую скобку ([), нет требуется дополнительная обработка. Если тело идентификатора содержит правую скобку (]), необходимо указать две правые скобки (]]).

...