我正在尝试使用OracleDataReader通过Powershell从Oracle DB获取一些数据。事情似乎工作得很好,除了我得到一组有限的数据。比方说,40条记录,而它使用SQL管理器应用程序返回5000以上。我错过了某种获取大小或超时吗?怎么让它把整套数据丢给我?
$connection = New-Object System.Data.OracleClient.OracleConnection($connectionString)
$command = New-Object System.Data.OracleClient.OracleCommand($query, $connection)
$connection.Open()
[System.Data.OracleClient.OracleDataReader]$data = $command.ExecuteReader()
$Counter = $data.FieldCount
$ObjArray = @()
while ($data.Read()) {
$Obj = New-Object System.Management.Automation.PSObject
0..($Counter - 1) | % {
$Obj | Add-Member -MemberType NoteProperty -Name $data.GetName($_) -Value $data.GetValue($_)
}
$ObjArray += $Obj
}
$connection.Close()
return $ObjArray
答案 0 :(得分:0)
我会跳过数组创建并直接将结果传递给管道。 PSObject和数组也易于展开。请尝试使用此解决方案(代码取自http://dev.cdur.pl/Artykuly/PowerShell-wykonywanie-polecen-SQL-Server):
pointToLayer: function(feat, latlng) {
var icon:
if (feat.properties && feat.properties.something === 1) {
icon = greenIcon;
} else {
icon = redIcon;
}
var layer = L.marker(latlng, {icon: icon});
if (feat.properties && feat.properties.popupContent) {
layer.bindPopup(feat.properties.popupContent + feature.properties.track_quotation);
}
return layer;
}