是否可以使用 ForEach 更改脚本任务中的对象变量值,然后将其存储在对象变量中?
Is it possible change Object variables value in Script Task with ForEach then store it in Object variable?
我使用 VS 2008 SSIS。
- 我有一个数据流任务,用于从 table 获取行并将它们存储在对象变量中。
- 我使用 Foreach 循环逐个获取对象变量的值。
- 在我的 Foreach 中,我每次都使用 Script Task change/decrypt 我的变量值。
我的问题是我找不到如何将解密值存储回对象变量,因为我需要将它们保存到平面文件。
我使用了另一个对象变量并试图在其中保存解密的值。但只保存最后解密的值而不是整个列表。
请分享您的想法或建议。任何帮助或建议将不胜感激!
由于您的目标是将解密后的值保存到平面文件中,您可以创建最终数据流并将对象变量用作源,在脚本转换(而不是任务)中进行解密,然后发送结果到您的平面文件目的地。
您可以在没有 SSIS Foreach 循环的情况下访问对象变量。下面的示例从对象变量填充 DataTable,更新 C# foreach 循环中指定列的 DataRow,并将其写回对象变量。在此脚本任务之后,您可以对对象变量的更新内容执行任何必要的操作,包括写入平面文件目标。
DataTable dt = new DataTable();
OleDbDataAdapter adapter = new OleDbDataAdapter();
adapter.Fill(dt, Dts.Variables["User::YourObjectVariable"].Value);
foreach (DataRow r in dt.Rows)
{
r["Column"] = " "; //Do work here
}
Dts.Variables["User::YourObjectVariable"].Value = dt;
我使用 VS 2008 SSIS。
- 我有一个数据流任务,用于从 table 获取行并将它们存储在对象变量中。
- 我使用 Foreach 循环逐个获取对象变量的值。
- 在我的 Foreach 中,我每次都使用 Script Task change/decrypt 我的变量值。
我的问题是我找不到如何将解密值存储回对象变量,因为我需要将它们保存到平面文件。
我使用了另一个对象变量并试图在其中保存解密的值。但只保存最后解密的值而不是整个列表。
请分享您的想法或建议。任何帮助或建议将不胜感激!
由于您的目标是将解密后的值保存到平面文件中,您可以创建最终数据流并将对象变量用作源,在脚本转换(而不是任务)中进行解密,然后发送结果到您的平面文件目的地。
您可以在没有 SSIS Foreach 循环的情况下访问对象变量。下面的示例从对象变量填充 DataTable,更新 C# foreach 循环中指定列的 DataRow,并将其写回对象变量。在此脚本任务之后,您可以对对象变量的更新内容执行任何必要的操作,包括写入平面文件目标。
DataTable dt = new DataTable();
OleDbDataAdapter adapter = new OleDbDataAdapter();
adapter.Fill(dt, Dts.Variables["User::YourObjectVariable"].Value);
foreach (DataRow r in dt.Rows)
{
r["Column"] = " "; //Do work here
}
Dts.Variables["User::YourObjectVariable"].Value = dt;