可以将变量用作SQL源语句,并创建一个字符串变量,其中包含将MDX语句与查询参数组合的表达式。可以通过将MDX用双引号括起来来完成此操作。需要转义
\
,但仅在解析时结果中才会有单个
\
。要正确地将数字参数连接到语句中,必须将其强制转换为字符串,这可以使用
(DT_STR,length,code page)
函数来实现。我猜参数的长度不会超过2个数字,因为它是一个月份,因此在
DT_STR
函数的长度参数中使用2,您可以根据需要进行调整。以下内容可用作字符串SSIS变量的表达式,然后可用作Execute SQL任务的SQL命令。在Execute SQL任务上,将
SQLSourceType
属性更改为Variable,并选择具有此表达式的变量作为
SourceVariable
。您还需要在Execute SQL任务的Properties窗口(按F4键)中将
DelayValidation
设置为true。如果将SSIS变量用作MDX参数而不是像下面的SSIS参数,则将
@[$Package :: ParameterName]
更改为变量名称,例如
@[User :: VariableName]
。如果它是项目参数,则可以用
Project
替换
Package
,并保留
$
,即
@[$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] + "] ) )"