我正在尝试导入存储在位置的 csv 文件。所有文件的大小都不同,其中包含 1 KB 到 15 KB 或更多。因此,当我尝试使用以下脚本导入该文件时,出现内存不足异常。
$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
Run Code Online (Sandbox Code Playgroud)
为了避免 OOM 异常,csv 文件的最大行数是多少?有没有其他更好的方法来处理这种情况。我看到帖子使用 fgetcsv 命令逐行读取。但时间长了吧??
请给我你的建议。提前致谢
查看Out-DataTable语法:它很可能是管道友好的。因此,您可以轻松地简化流程,而不是“吸入”整个 CSV 到变量中:
Import-Csv -Path (Get-ChildItem $CsvFilePath) | Out-DataTable
Run Code Online (Sandbox Code Playgroud)
限制:我不知道,但管道通常可以帮助您:它不会将整个内容存储在内存中,因此即使您没有足够的东西,它也有可能会正常工作。
| 归档时间: |
|
| 查看次数: |
1659 次 |
| 最近记录: |