StrToTuple (многомерные выражения)
Возвращает кортеж, заданный форматированной строкой многомерных выражений.
Синтаксис
StrToTuple(Tuple_Specification [,CONSTRAINED] )
Аргументы
- Tuple_Specification
Допустимое строковое выражение, явно или неявно задающее кортеж.
Замечания
Функция StrToTuple возвращает указанный набор. Функция StrToTuple обычно используется вместе с определяемыми пользователем функциями для возвращения спецификации кортежа из внешней функции обратно в инструкцию с многомерным выражением.
Когда используется флаг CONSTRAINED, спецификация кортежа должна содержать полное или неполное имя элемента. Этот флаг используется для уменьшения риска атак, использующих вставку инструкций SQL в указанную строку. Если указана строка, которую невозможно напрямую разрешить до полного или неполного имени элемента, то появится следующее сообщение об ошибке: «Нарушены ограничения, установленные флагом CONSTRAINED функции STRTOTUPLE».
Когда флаг CONSTRAINED не используется, заданный кортеж может быть разрешен в допустимое многомерное выражение, возвращающее кортеж.
Примеры
В следующем примере возвращается мера Reseller Sales Amount для элемента Bayern для 2004 календарного года. Предоставленная спецификация кортежа содержит допустимое многомерное кортежное выражение.
SELECT StrToTuple ('([Geography].[State-Province].[Bayern],[Date].[Calendar Year].[CY 2004], [Measures].[Reseller Sales Amount])')
ON 0
FROM [Adventure Works]
В следующем примере возвращается мера Reseller Sales Amount для элемента Bayern для 2004 календарного года. Предоставленная спецификация кортежа содержит полные названия элементов, требуемые для флага CONSTRAINED.
SELECT StrToTuple ('([Geography].[State-Province].[Bayern],[Date].[Calendar Year].[CY 2004], [Measures].[Reseller Sales Amount])', CONSTRAINED)
ON 0
FROM [Adventure Works]
В следующем примере возвращается мера Reseller Sales Amount для элемента Bayern для 2004 календарного года. Предоставленная спецификация кортежа содержит допустимое многомерное кортежное выражение.
SELECT StrToTuple ('([Geography].[State-Province].[Bayern],[Date].[Calendar Year].&[2003].NEXTMEMBER, [Measures].[Reseller Sales Amount])')
ON 0
FROM [Adventure Works]
В следующем примере возвращается сообщение об ошибке, поскольку используется флаг CONSTRAINED. Хотя предоставленная спецификация кортежа содержит допустимое многомерное кортежное выражение, флаг CONSTRAINED требует полного или неполного имени элемента в спецификации кортежа.
SELECT StrToTuple ('([Geography].[State-Province].[Bayern],[Date].[Calendar Year].&[2003].NEXTMEMBER, [Measures].[Reseller Sales Amount])', CONSTRAINED)
ON 0
FROM [Adventure Works]