gpt4 book ai didi

sql-server - 带有参数的 SQL 任务 MDX。 SSIS

转载 作者:行者123 更新时间:2023-12-03 03:13:15 26 4
gpt4 key购买 nike

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

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 变量而不是 SSIS 参数用作 MDX 参数(如下例所示),请将 @[$Package::ParameterName] 更改为变量名称,例如 @[User::变量名]。如果是项目参数,则可以将参数名称中的 Package 替换为 Project ,并保留 $ ,即 @[$项目::参数名称].

"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] + "] ) )"

关于sql-server - 带有参数的 SQL 任务 MDX。 SSIS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55059806/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com