Sql server 2008 r2 SSIS格式化平面文件中的输入

Sql server 2008 r2 SSIS格式化平面文件中的输入,sql-server-2008-r2,ssis,text-parsing,Sql Server 2008 R2,Ssis,Text Parsing,我是SSIS的新手。在将条目保存到数据库表中之前,我想格式化平面文件的输入。最初,我创建了一个平面文件,如下所示:- “1”,“超人”,“大都会” “2”,“蝙蝠侠”,“高谭” “3”,“蜘蛛侠”,“纽约” “4”,“詹姆斯·邦德”,“伦敦” “5”、“绿灯”、“Oa” 用于剥离的解决方案很简单,如下所示 但现在我创建了一个新的类似包,并给出了如下输入文件:- “6”、“TMNT”、“纽约下水道” “7”,“钢铁侠”,“纽约” 注意这里我在分隔逗号后面加了一个空格。现在,当我遵循上述


我是SSIS的新手。在将条目保存到数据库表中之前,我想格式化平面文件的输入。最初,我创建了一个平面文件,如下所示:-

  • “1”,“超人”,“大都会”
  • “2”,“蝙蝠侠”,“高谭”
  • “3”,“蜘蛛侠”,“纽约”
  • “4”,“詹姆斯·邦德”,“伦敦”
  • “5”、“绿灯”、“Oa”

    用于剥离的解决方案很简单,如下所示

    但现在我创建了一个新的类似包,并给出了如下输入文件:-

    • “6”、“TMNT”、“纽约下水道”
    • “7”,“钢铁侠”,“纽约”

注意这里我在分隔逗号后面加了一个空格。现在,当我遵循上述方法时,第一个数字字段去掉了双引号,但其余条目保留了引号。你知道怎么解决这个问题吗?关于stackoverflow类似问题的一项建议提到使用“转换脚本”。既然我是个新手,谁能介绍一下这个方法吗?

是的,你可以使用脚本组件转换。选择所有列,并将其更改为ReadWrite。守则:

public override void Input0_ProcessInputRow(Input0Buffer Row)
{
    Row.ID = Row.ID.Replace("\"", string.Empty);
    Row.Movie = Row.Movie.Replace("\"", string.Empty);
    Row.City = Row.City.Replace("\"", string.Empty);
}
如果要修剪空间,可以使用

Row.ID.Replace("\"", string.Empty).Trim();

如果要保留“”的值,还需要小心。如果建议有帮助或您有任何问题,请发布。

在“常规”选项卡中,您可以将文本限定符设置为“。然后这些引用将被忽略


如果有一个简单的解决方案,您就不需要编写容易出错的脚本。

请正确阅读问题。我知道这种方法,在第一种情况下有效。在第二种情况下无效!Thanx Anoop!一定会尝试这种方法