SSIS:在平面文件连接管理器中将行定界符从{LF}更改为{CR} {LF}

时间:2018-06-28 06:06:53

标签: ssis sql-server-2012 ssis-2012 ssis-2008 msbi

我是SSIS的新手,我创建了一个带有oledb源和平面文件目标的数据流。

最初,目标文件的行分隔符为{LF} 但我现在必须将其更改为{CR} {LF}。我有大约100个以上的平面文件目标。

我尝试了以下方法,第二种方法可行,但这很耗时。

  1. 我尝试打开每个平面文件连接管理器,并尝试更改行分隔符,但我的Visual Studio没有响应。我做了几次,但没有运气。

  2. 我删除了平面文件连接管理器,并使用右行定界符重新创建它,然后它可以正常工作,但我担心我必须执行100次以上。

  3. 我在文本编辑器中打开了.dtsx文件,我可以找到标题行定界符,但找不到行定界符。

  4. 我尝试更改表达式中的行定界符,但它没有生效。

有什么最好的方法可以简单地做到这一点?

1 个答案:

答案 0 :(得分:0)

我用它来删除CRLF

"$text = [IO.File]::ReadAllText(" + @ic + @FullFilePath + @ic + ") -replace " + 
ic2 +"`r`n" + @ic2 + "," + @ic2 +" " + @ic2 +  "; [IO.File]::WriteAllText(" + 
@ic+ @FullFilePath + @ic + ", $text)"

where 
@ic = ' 
@ic2 = """
@FullFilePath is the path returned from the For..Loop container.

注意:我将原始文件复制到一个新文件夹,然后更新副本而不是修改原始文件。

如果您更改此代码,我希望这对您有用:

-replace " +  ic2 +"`r`n" + @ic2 + "," + @ic2 +" " + @ic2 +  "

-replace " +  ic2 +"`n" + @ic2 + "," + @ic2 +"`r`n" + @ic2 +  "

我是在VS 2008中开发的。 screenshot

enter image description here