Sql server 带参数的SQL任务MDX。SSIS

Sql server 带参数的SQL任务MDX。SSIS,sql-server,ssis,mdx,ssis-2012,mdx-query,Sql Server,Ssis,Mdx,Ssis 2012,Mdx Query,我需要在SSI中动态创建一些本地多维数据集,但我不知道如何在此查询中使用参数 CREATE GLOBAL CUBE test STORAGE 'C:\test.cub' FROM Cube_test( Measure [Cube_test].[Val], dimension [Cube_test].[Date_1] ( level [Date_1], member [Date_1].[Month].&[2], member [Date_1].[Month].&[?

我需要在SSI中动态创建一些本地多维数据集,但我不知道如何在此查询中使用参数

CREATE GLOBAL CUBE test
STORAGE 'C:\test.cub'
FROM Cube_test( 
Measure [Cube_test].[Val], 
dimension [Cube_test].[Date_1] ( 
level [Date_1],     
member [Date_1].[Month].&[2],
member [Date_1].[Month].&[?] )
 )

我可以不带参数运行sql任务,但当我尝试使用参数运行sql任务时,会出现错误“参数不正确”。对于sql查询,我可以使用它们,但不能使用mdx,请改用变量作为sql源语句,并使用将mdx语句与查询参数组合在一起的表达式创建字符串变量。这可以通过将MDX用双引号括起来来实现,如下所示。
\
需要按照下面的操作进行转义,但是在解析它时,结果中只会有一个
\
。要将数值参数正确地连接到语句中,必须将其转换为字符串,该字符串由
(DT_STR,length,code page)
函数完成。我猜参数的长度不会超过2位,因为它是一个月,因此2用于
DT_STR
函数的长度参数,您可以根据需要进行调整。以下内容可用作字符串SSIS变量的表达式,该变量随后可用作执行SQL任务的SQL命令。在执行SQL任务中,将
SQLSourceType
属性更改为Variable,并选择带有此表达式的变量作为
SourceVariable
。您还需要在执行SQL任务的属性窗口(按F4键)上将
DelayValidation
设置为true。如果将SSIS变量用作MDX参数而不是以下示例中的SSIS参数,请将
@[$Package::ParameterName]
更改为变量名称,例如
@[User::VariableName]
。如果它是一个项目参数,则可以在参数名称中将
替换为
项目
,并保留
$
,即
@[$project::ParameterName]

"CREATE GLOBAL CUBE test
STORAGE 'C:\\test.cub'
FROM Cube_test( 
Measure [Cube_test].[Val], 
dimension [Cube_test].[Date_1] ( 
level [Date_1],     
member [Date_1].[Month].&[2],
member [Date_1].[Month].&[" + (DT_STR, 2, 1252) @[$Package::ParameterName] + "] ) )"

尝试将其创建为表达式,而不是使用“?”