长度可变的ssis脚本拆分字符串

6rqinv9w  于 2021-07-26  发布在  Java
关注(0)|答案(1)|浏览(551)

我正在尝试使用脚本组件拆分ssis中的分隔字段,并得到一个索引数组错误。如果我的数据集是;

Name City Age
-----------------------
John Washington 25
Sarah Chicago
Mike
Mary Philadelphia 34

我正在使用脚本代码;

Var ColumnValue = Row.People.Split(' ');

    Row.Name = ColumnValue[0];
    Row.City = ColumnValue[1];
    Row.Age = ColumnValue[2];

但是当我运行ssis包时,我得到一个索引数组错误。我想这是因为我试图拆分的字符串并不总是有城市和年龄的值。数据正在从excel文件加载到sql db,如果缺少这些字段,则字段末尾没有任何空格/分隔符。如何解析此字段?

vmdwslir

vmdwslir1#

你盲目地要求一些不存在的东西,但你没有警告引擎它可能找不到东西。
相反,应该检查数组的结果长度,并按预期填充列。

Var ColumnValue = Row.People.Split(' ');
// We assume there's always a first thing
Row.Name = ColumnValue[0];

// Here begins things that might not be there
if (ColumnValue.Length > 1)
{
    Row.City = ColumnValue[1];
}

if (ColumnValue.Length > 2)
{
    Row.Age = ColumnValue[2];
}

.net小提琴

相关问题