通过OracleDataReader执行SQL查询始终返回有限的数据集

时间:2016-09-14 07:48:39

标签: sql oracle powershell

我正在尝试使用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

1 个答案:

答案 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;
}