将值传递给执行SSIS包中的变量
问题描述:
我有一个SSIS包来加载一些基于月份的数据,我想通过windows批处理文件调用这个包。以下是在现在工作正常的CMD文件:将值传递给执行SSIS包中的变量
CD /D C:\Program Files\Microsoft SQL Server\100\DTS\Binn
DTExec.exe /f "E:\APAutomation\SSIS\AP\ActualDataImport_Console_PL.dtsx" /SET \Package.Variables[User::ActualMonth].Properties[Value]; "9"
现在我用一个变量代替9,以使其不太硬编码
CD /D C:\Program Files\Microsoft SQL Server\100\DTS\Binn
set ActualMonth = 9
DTExec.exe /f "E:\APAutomation\SSIS\AP\ActualDataImport_Console_PL.dtsx" /SET \Package.Variables[User::ActualMonth].Properties[Value]; "%ActualMonth%"
然而
,这是不行的:这是错误消息:
C:\Program Files\Microsoft SQL Server\100\DTS\Binn>DTExec.exe /f "E:\APAutomatio
n\SSIS\AP\ActualDataImport_Console_PL.dtsx" /SET \Package.Variables[User::Actual
Month].Properties[Value]; ""
Microsoft (R) SQL Server Execute Package Utility
Version 10.50.1600.1 for 64-bit
Copyright (C) Microsoft Corporation 2010. All rights reserved.
Argument ""\Package.Variables[User::ActualMonth].Properties[Value];"" for option
"set" is not valid.
C:\Program Files\Microsoft SQL Server\100\DTS\Binn>pause
Press any key to continue . . .
我也试过:
set ActualMonth = "9"
DTExec.exe /f "E:\APAutomation\SSIS\AP\ActualDataImport_Console_PL.dtsx" /SET \Package.Variables[User::ActualMonth].Properties[Value]; %ActualMonth%
它向我扔了同样的错误消息。请帮忙!
答
我觉得您的具体问题是空间...
使用本
set ActualMonth=9
,而不是这样的:
set ActualMonth = 9
你在做什么,基本上设置包的配置从一个批处理文件。如果你设置软件包从包配置文件中读取并将你的月份号码放在那里,它可能会更好。
你是对的!刚刚发现。谢谢 – Jasmine
我建议你看看软件包的配置......你打算每个月手动设置这个月吗? –
感谢您的建议。实际上,在我真正的软件包中,我正在调用setenviroment bat文件,这是参数的值。我没有提到,为了简单和专注我在这里问的问题。 – Jasmine