使用ssis删除最后一行中的多余空间

时间:2018-11-05 20:53:33

标签: sql-server csv ssis etl

我有一个csv文件,其中包含几行,几列。我在源头遇到问题,因为最后一行有多余的空间。如何删除该空间?

您可以看到以下图片的末尾有多余的空格

you can see the attached image has an extra space at the end

1 个答案:

答案 0 :(得分:2)

由于您开放使用Powershell,因此我使用了此方法。每个文件中最后要考虑的是您的LF/CR,这一点很重要。如果可能是丢失,那么您必须为此检查一下。

单个文件

$stream = [IO.File]::OpenWrite("somefile.csv")
$stream.SetLength($stream.Length - 2)
$stream.Close()
$stream.Dispose()

目录中有多个文件

#Remove the last bit of data from the end of the file, which is a LF, so BULK INSERT doesn't break
$fileDirectory = "E:\dir\subdirectory"

foreach($file in Get-ChildItem $fileDirectory)
{
    $filePath = $fileDirectory + "\" + $file

    $stream = [IO.File]::OpenWrite($filePath)
    $stream.SetLength($stream.Length - 2)
    $stream.Close()
    $stream.Dispose()
}

我在一个相当大的每日数据集上使用它,它非常愚蠢,一两秒就可以了。最初的想法通过Joey记入this answer.

从操作上

Execute process Task Values