我正在为我的客户构建一个BI仪表板。我们的数据存储在分析服务器多维数据集中。总的来说,一切都很顺利,但一位smartalec测试人员决定创建一个名称为"~!@#$%^&*()_+-=[]{}|;':"<>?"的商家。/名称作为查询结果的一部分显示得很好,但如果用户试图钻入商家,我们当然会炸毁b/c {;都是MDX的一部分。有没有办法逃避这些字符?我试过在前面放一个,或者把字符翻倍。我到处都找遍了,但什么也没找到。
TIA
必须使用[]符号表示您的名称,并且(仅)转义右括号。下面是一个使用要转义的名称声明计算度量的示例(注意[]):
with member [`~!@#$%^&*()_+-=[]]{}|;':"<>?,./] as 42
select [`~!@#$%^&*()_+-=[]]{}|;':"<>?,./] on 0 from [cube]
可以尝试使用[]括号吗?我想应该会有帮助。但是你也应该"转义"你自己的括号。
MSDN
如果标识符体只包含一个左括号([),则没有需要额外处理。如果标识符的主体包含右括号(]),必须指定两个右括号(]])。