2017-03-08 78 views
0

我想寻求建议,我如何将oracle查询输出到与oracle查询相同的宽格式输出的csv。下面 是摘自我的代码Oracle查询并输出到CSV

[System.Reflection.Assembly]::LoadWithPartialName("System.Data.OracleClient") | Out-Null 
$connection = New-Object System.Data.OracleClient.OracleConnection($connectionString) 
$command = new-Object System.Data.OracleClient.OracleCommand($queryString, $connection) 
$connection.Open() 
$users = $command.ExecuteReader() 
$Counter = $users.FieldCount 

$dataset = 
    @( while ($users.Read()) { 
     for ($i = 0; $i -lt $Counter; $i++) { 
     New-Object PsObject -Property @{ Key = $users.GetName($i) 
             Value = $users.GetValue($i) 
            } 
            } 
    }) 
$connection.Close() 

输出:

PS C:\WINDOWS\system32> $dataset 

Key    Value   
---    -----   
PRCDNAME  A123rw-T03 
ASSY_PART1  wrwrwee-A03 
ASSY_PART2  wrewrwe-A0CAD 
ASSY_PART3  wer   
ASSY_PART4      
ASSY_PART5      
ASSY_PART6      
OUTPN_1   rgsrggs-3  
OUTPN_2       
OUTPN_3       
OUTPN_4       
OUTPN_5       
OUTPN_6       
OUTPN_7       
OUTPN_1_ALLOC1 

我想下面对其进行格式化。基本上我需要的键列作为标题

PRCDNAME,ASSY_PART1,ASSY_PART2 ,......, 

A123rw-T03,wrwrwee-A03,wrewrwe-A0CAD,....,  

回答

1

从对象列表中创建一个哈希表:

$ht = @{} 
$dataset | ForEach-Object { $ht[$_.Key] = $_.Value } 

然后从哈希表中创建一个对象,并将其导出为CSV:

​​
+0

它的工作原理!非常感谢! :) – jleusjr