我正在尝试导入存储在位置的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
答案 0 :(得分:3)
查看Out-DataTable
语法:它最有可能是管道友好的。
而不是"吸吮"将整个CSV转换为变量,您可以轻松简化流程:
Import-Csv -Path (Get-ChildItem $CsvFilePath) | Out-DataTable
限制:没有我清楚知道,但这通常可以帮助你:它不会将整个事物存储在内存中,所以即使你没有'有足够的,它可能会正常工作。