我的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变量中提取存储在数组中的字符串的示例,但是没有找到。
答案 0 :(得分:1)
好的,事实证明这并不简单。
只需将值转换为字符串数组:
String[] astrCustNames = (String[])Dts.Variables["User::CustomerNames"].Value;