大家好我正在尝试按计划自动将查询结果写入制表符分隔的csv文件。目前我正在使用powershell来执行此操作
$results = Invoke-SQLCmd -ServerInstance $Server -Database $Database -query "select distinct * from WHIProducts"
$results | ConvertTo-csv -NoTypeInformation -Delimiter "`t" | Out-File "$inventorypath\inventory_$date\$filename" -fo -en ascii
这个问题是结果太大我得到了system.outofmemoryexception错误。我试过增加maxmemorypershell但我仍然得到同样的错误。我需要自动进入SSMS并手动完成它是不够的。有什么想法吗?
我正在尝试打印~17万行。最终会有更多,可能高达约300k。这是powershell错误。
ConvertTo-csv:'System.OutOfMemoryException'类型的异常是 抛出。在 C:\ Users \用户pmaho \ Dropbox的\ MASSFILEStest \脚本\ daily_inventory的.ps1:59 char:12 + $结果| ConvertTo-csv -NoTypeInformation -Delimiter“`t” | Out-Fil ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~ + CategoryInfo:NotSpecified:(:) [ConvertTo-Csv],OutOfMemoryException + FullyQualifiedErrorId:System.OutOfMemoryException,Microsoft.PowerShell.Commands.Co nvertToCsvCommand -
我正在使用SQL Server Express版
答案 0 :(得分:3)
尝试将Invoke-SqlCmd的输出传递给Export-CSV cmdlet。这是脚本。
->add('nationveranstaltungsort', ChoiceType::class, array(
'choices' => array(
'D' => 'Deutschland',
'AFG' => 'Afghanistan',
//many other countries following
),
'data' => 'D',
'label' => 'Nation Tagungsstätte'))