次の方法で共有


StrToMember (MDX)

多次元式 (MDX) 形式の文字列によって指定されているメンバを返します。

構文

StrToMember(Member_Name [,CONSTRAINED] ) 

引数

  • Member_Name
    直接的または間接的にメンバを指定する有効な文字列式です。

説明

StrToMember 関数は、指定されたメンバを返します。通常、StrToMember 関数は、メンバ指定を外部関数から MDX ステートメントに返すために、ユーザー定義関数と組み合わせて使用します。

  • CONSTRAINED フラグを使用するときは、メンバ名には修飾されているメンバ名または修飾されていないメンバ名に直接解決できる文字列を指定する必要があります。このフラグは、指定された文字列によるインジェクション攻撃の危険性を軽減するために使用します。修飾されているメンバ名または修飾されていないメンバ名に直接解決できない文字列を指定すると、"STRTOMEMBER 関数の CONSTRAINED フラグによって設定された制限に違反しました。" というエラーが表示されます。

  • CONSTRAINED フラグを使用しない場合、メンバ名に直接解決されるメンバも、名前に解決される MDX 式に解決されるメンバも指定できます。

次の例では、StrToMember 関数を使用して、State-Province 属性階層にある Bayern メンバの Reseller Sales Amount メジャーを返します。文字列の指定により、修飾されているメンバ名が指定されています。

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

次の例では、StrToMember 関数を使用して、Bayern メンバの Reseller Sales Amount メジャーを返します。メンバ名文字列には修飾されていないメンバ名のみを指定したので、クエリは指定メンバの最初のインスタンスを返します。この最初のインスタンスは、Reseller Sales と交差しない Customer ディメンションの Customer Geography 階層にあります。期待する結果を確実に取得するには、修飾されている名前を指定することをお勧めします。

SELECT StrToMember ('[Bayern]').Parent
ON 0
FROM [Adventure Works]

次の例では、StrToMember 関数を使用して、State-Province 属性階層にある Bayern メンバの Reseller Sales Amount メジャーを返します。指定したメンバ名文字列は、修飾されているメンバ名に解決されます。

SELECT StrToMember ('[Geography].[Geography].[Country].[Germany].FirstChild')
ON 0
FROM [Adventure Works]

次の例では、CONSTRAINED フラグが原因でエラーが返されます。指定したメンバ名文字列には、修飾されているメンバ名に解決される有効な MDX メンバ式が含まれていますが、CONSTRAINED フラグを使用しているので、メンバ名文字列内に修飾されているメンバ名または修飾されていないメンバ名が必要になります。

SELECT StrToMember ('[Geography].[Geography].[Country].[Germany].FirstChild', CONSTRAINED)
ON 0
FROM [Adventure Works]