Поделиться через


StrToSet (многомерные выражения)

Возвращает набор, заданный строкой в формате многомерных выражений.

Синтаксис

StrToSet(Set_Specification [,CONSTRAINED] ) 

Аргументы

  • Set_Specification
    Допустимое строковое выражение, обозначающее (напрямую или косвенно) набор.

Замечания

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

  • При использовании флага CONSTRAINED спецификация набора должна содержать полные или неполные имена элементов или набор кортежей, содержащий полные или неполные имена элементов, заключенные в фигурные скобки {}. Этот флаг используется для уменьшения риска атак, использующих вставку инструкций SQL в указанную строку. Если указана строка, которую невозможно напрямую разрешить до полного или неполного имени элемента, то появится следующее сообщение об ошибке: «Нарушены ограничения, наложенные флагом CONSTRAINED в функции STRTOSET».

  • Если флаг CONSTRAINED не используется, заданную спецификацию набора можно разрешить в допустимое многомерное выражение, возвращающее набор.

  • Дополнительные сведения о различиях между наборами и элементами см. в разделах «Использование выражений наборов» и «Использование выражений элементов».

Примеры

В следующем примере при помощи функции StrToSet возвращается набор элементов иерархии атрибута State-Province. Указанная спецификация набора является допустимым многомерным выражением набора.

SELECT StrToSet ('[Geography].[State-Province].Members')
ON 0
FROM [Adventure Works]

В следующем примере возвращается сообщение об ошибке, поскольку используется флаг CONSTRAINED. Несмотря на то что заданная спецификация набора является допустимым многомерным выражением набора, она должна содержать полные или неполные имена элементов, поскольку указан флаг CONSTRAINED.

SELECT StrToSet ('[Geography].[State-Province].Members', CONSTRAINED)
ON 0
FROM [Adventure Works]

В следующем примере возвращается мера Reseller Sales Amount для стран Germany и Canada. Указанная спецификация набора содержит полные имена элементов, как этого требует флаг CONSTRAINED.

SELECT StrToSet ('{[Geography].[Geography].[Country].[Germany],[Geography].[Geography].[Country].[Canada]}', CONSTRAINED)
ON 0
FROM [Adventure Works]