在powershell中导入csv get out of memory exception

时间:2014-05-09 09:01:49

标签: powershell

我正在尝试导入存储在位置的csv文件。所有文件的大小各不相同,包含1 KB到15 KB或更多。所以当我尝试使用以下脚本导入该文件时o内存不足异常。

$DataImport=Import-Csv -Path (Get-ChildItem $CsvFilePath)

$DataTable=Out-DataTable -InputObject $DataImport

Write-DataTable -ServerInstance $server -Database $Database -TableName $Table -Username 

$Username -Password $Password -Data $DataTable

csv文件的最大行数应该是什么,以避免OOM异常?还有其他更好的方法来处理这种情况。我看到post使用fgetcsv命令逐行读取。但是好久没事了?

请给我你的建议。 提前致谢 jerin

1 个答案:

答案 0 :(得分:3)

查看Out-DataTable语法:它最有可能是管道友好的。 而不是"吸吮"将整个CSV转换为变量,您可以轻松简化流程:

Import-Csv -Path (Get-ChildItem $CsvFilePath) | Out-DataTable

限制:没有我清楚知道,但这通常可以帮助你:它不会将整个事物存储在内存中,所以即使你没有'有足够的,它可能会正常工作。