SSIS格式化平面文件的输入

时间:2013-02-10 07:27:25

标签: sql-server-2008-r2 ssis text-parsing


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

  • " 1""超人""大都市"
  • " 2""蝙蝠侠""谭"
  • " 3","蜘蛛侠","纽约"
  • " 4"," James Bond"," London"
  • " 5"," Green Lantern"," Oa"

    剥离的解决方案很简单,如http://www.mssqltips.com/sqlservertip/1316/strip-double-quotes-from-an-import-file-in-integration-services-ssis/

    所示

    但是现在我已经创建了一个新的类似包并给出了我的输入文件: -

    • " 6"," TMNT"," Sewers NY"
    • " 7","钢铁侠","纽约"

请注意,我在分隔逗号后面放了一个空格。现在,当我按照上面的方法时,第一个数字字段剥去了双引号,但其余条目保留了它们的引号。知道如何解决这个问题吗?关于stackoverflow上类似问题的一个建议提到了使用"转换脚本"。既然我是新手,那么请问这个方法吗?

2 个答案:

答案 0 :(得分:1)

是的,您可以使用脚本组件转换。选择所有列,并将其更改为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();

如果您想要保留"的值,您还需要注意。 &#34 ;.如果建议有用或者您有任何问题,请发帖。

答案 1 :(得分:0)

在“常规”标签中,您可以设置文本限定符“。那么这些引号将被忽略。

然后,当有简单的解决方案时,您不需要编写容易出错的脚本。