Как получить имя куба из данного запроса MDX - PullRequest
0 голосов
/ 26 июня 2018

Как получить cube name из данного MDX запроса.

Например: у меня есть запрос, подобный приведенному ниже,

SELECT [Date].[Calendar Year].MEMBERS on 0 , TOPCOUNT( [Product].[Product].MEMBERS , 10 , [Measures].[Sales Amount] ) ON 1 FROM [Adventure Works]

Как я могу получить cube name Adventure Works из приведенного выше запроса?

1 Ответ

0 голосов
/ 29 июня 2018

Вам нужно разобрать MDX.Степень сложности вашего анализатора зависит от усилий, которые вы можете инвестировать, от вашей терпимости к потенциальным ошибкам и, возможно, от вашего опыта в создании синтаксических анализаторов.

Просто набросок:

Вам следуетпоиск по ключевому слову FROM.В грамматике MDX это может сопровождаться только именем куба или подвыбором.Подвыбор можно распознать через круглые скобки, за которыми следует ключевое слово SELECT.И ключевые слова могут быть распознаны, так как они не содержатся в комментариях, строках или квадратных скобках.

Поскольку вложенные элементы должны быть правильно вложены, я думаю, вы, вероятно, даже могли бы просто искать последнее ключевое слово FROM.За ним всегда должно следовать имя куба, либо в квадратных скобках, либо в качестве допустимого идентификатора.

...