从SSIS变量中提取字符串数组

时间:2014-08-26 18:34:23

标签: ssis arrays script-task

我的SSIS包中有两个脚本任务。第一个将字符串数组保存为包变量:

// In 1st script task:
String[] astrCustNames = new String[cust_count];

/* ...
 * Some code to add strings to array ...
 */

// Add array to a package variable
Dts.Variables["CustomerNames"].Value = astrCustNames;

然后第二个任务应该从变量中提取字符串。在过去,我用表变量完成了这个。这对字符串数组不起作用:

// In 2nd script task:
OleDbDataAdapter ole_da = new OleDbDataAdapter();
// Fill the customer names data table
DataTable dtCustNames = new DataTable();
ole_da.Fill(dtCustNames, Dts.Variables["User::CustomerNames"].Value);

填充数据适配器的调用将导致错误"对象不是ADODB.RecordSet或ADODB.Record。"

.dtsx包将数据类型列为DTS:DataType =" 13"

包中定义的变量的数据类型是"对象":

// Returns type "Object":
TypeCode cur_type = Dts.Variables["User::CustomerNames"].DataType;

我一直在搜索在SSIS变量中提取存储在数组中的字符串的示例,但是没有找到。

1 个答案:

答案 0 :(得分:1)

好的,事实证明这并不简单。

只需将值转换为字符串数组:

String[] astrCustNames = (String[])Dts.Variables["User::CustomerNames"].Value;