2013-02-10 118 views
0


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

  • “1”, “超人”, “都”
  • “2”, “蝙蝠侠”, “世界街头”
  • “3”,”蜘蛛侠”, “纽约”
  • “4”, “詹姆斯·邦德”, “伦敦”
  • “5”, “绿灯侠”, “OA”

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

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

    • “6”, “忍者神龟”, “下水道NY”
    • “7”,“钢铁侠”,‘纽约’

注意这里我分隔逗号后加一个空格。现在,当我按照上面的方法删除双引号的第一个数字字段,但其余的条目保留其引号。任何想法如何解决这个问题?一个关于stackoverflow类似问题的建议提到了使用“转换脚本”。既然我是新手,任何人都可以点亮这个方法吗?

回答

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(); 

您还需要照顾,如果你想保留的“值”。如果建议有帮助或者您有任何问题,请发布。

+0

Thanx Anoop!肯定会尝试这个 – Sparky 2013-02-11 14:53:01

0

在你可以设置的”文本限定符“常规”选项卡,然后这些报价将被忽略。

然后你不需要写容易出错的脚本时,有一个简单的解决方案。

+0

请正确地阅读这个问题,我知道这种方法,它在第一种情况下起作用,它在我的第二种情况下不起作用 – Sparky 2013-02-11 14:52:32

+0

对不起,我的坏。 – 2013-02-11 21:21:18