2015-11-04 54 views
0

我有一個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% 

它向我扔了同樣的錯誤消息。請幫忙!

回答

0

我覺得您的具體問題是空間...

使用本

set ActualMonth=9 

,而不是這樣的:

set ActualMonth = 9 

你在做什麼,基本上設置包的配置從一個批處理文件。如果你設置軟件包從包配置文件中讀取並將你的月份號碼放在那裏,它可能會更好。

+0

你是對的!剛剛發現。謝謝 – Jasmine

+0

我建議你看看軟件包的配置......你打算每個月手動設置這個月嗎? –

+0

感謝您的建議。實際上,在我真正的軟件包中,我正在調用setenviroment bat文件,這是參數的值。我沒有提到,爲了簡單和專注我在這裏問的問題。 – Jasmine