如果我在SSIS中有一個字符串變量,其中包含由逗號(或任何其他標準字符)分隔的值列表 - 是否可以將這些值加載到對象變量中然後我可以使用Object變量作爲resultSet枚舉器並遍歷每個值?SSIS - 通過字符串變量填充對象變量
[編輯]只是爲了澄清情況 - 我有約。每個變量包含1個或0個變量 - 每個變量確定是否需要在作業期間處理特定的SSAS表(1 =是,需要處理0 =否,不處理它)。
我現在要做的就是存儲WERE在一個對象變量中處理的表名,然後遍歷該列表,爲每個表單寫入一個日誌條目,以表示它在此作業期間被處理。
[編輯#2] 我沒有解釋這很好,但讓我試着總結 - 這裏是當前形勢:
我有一個變量,名爲strPartitionArray - 這個變量現在包含字符串,通過逗號,由該式求出分離(理解,這有缺陷 - 尤其是如果DimAbsenceUpdate是0,則所有落在分開,但希望能分別計算出該修復):
(
@[User::DimAbsenceUpdate] == 1 ?
"Absence":""
)
+ (
@[User::DimGradeUpdate] == 1 ?
",Grade":""
)
+ (
@[User::DimContractUpdate] == 1 ?
",Contract":""
)
+ (
@[User::DimEmployeeUpdate] == 1 ?
" ,Employee":""
)
因此,作爲一個例如,現在,該變量的值是:缺席,等級,合同
我需要這個存儲在一個對象變量,以便我可以循環通過這3個條目(缺席,成績,合同)作爲一個SQL任務的一部分,所以,使用下面的代碼,我試圖分裂出那些3字爲對象稱爲RecordProcessDateTime
public void Main()
{
String tmp = Dts.Variables["User::strPartitionArray"].ToString();
String[] tmpArray = tmp.Split(',');
Dts.Variables["User::RecordProcessDateTime"].Value = tmpArray;
Dts.TaskResult = (int)ScriptResults.Success;
}
假設上述工程的代碼,然後我想使用作爲RecordProcessDateTime枚舉爲Foreach循環 - 通過每個的那些3個字運行。 容器中的SQL任務將寫入一個日誌條目。該SQL Task的一部分將有問題的單詞(缺席,成績,然後合同)寫入日誌條目 - 基本上讓我知道沒有處理SSAS表。
因此,我已經將腳本,Foreach循環(包含SQL任務)全部放入序列容器中。當我運行序列容器時,它可以工作(!),但只向日志中寫入一個條目(當它應該寫入3時),並且該條目不包含任何3個字,它就包含這個:'Microsoft.SqlServer。 Dts.Runtime.Variable'
我的假設是,腳本實際上並沒有如預期的那樣將這3個值放入Object變量,這就是爲什麼foreach循環只運行一次而不包含任何單詞。
是的,你可以做到這一點。 – KeithL