Ich versuche, eine Tabelle in Oracle von PowerShell zu lesen und in einer ArrayList zu speichern. Die Verbindung funktioniert, aber das Lesen der Zeilen nach dem ersten funktioniert nicht.Lesen mehrerer Zeilen von Oracle-Tabelle
Hier ist, was ich versuche zu tun.
$rows = New-Object System.Collections.ArrayList
class Table {
[String] $name
[String] $type
}
try {
$oraConn.Open()
$sql = [string]::Format("select name, type from source_table where type = 'running'")
$oraCmd = New-Object System.Data.OracleClient.OracleCommand($sql, $oraConn)
$reader = $oraCmd.ExecuteReader()
#add tables to arraylist
while ($reader.Read()) {
$table = New-Object Table
$table.name = $reader["name"];
$table.type = $reader["type"];
[void]$rows.Add($table)
}
Write-Host "rows collected"
}
Mein Problem ist, dass ich nur die erste Zeile der Tabelle gelesen, wie kann ich Oracle sagen, sie alle zu lesen? Müsste ich zuerst count
und dann für jede Zeile abfragen?
Ich überprüfe den Inhalt von $rows
später im Code, es ist nicht wirklich relevant für die Frage, da ich weiß, dass dieser Teil funktioniert, also habe ich es weggelassen. Ich weiß, dass meine Abfrage etwas zurückgibt, weil ich es in Oracle versucht habe.
Benötige ich eine foreach
Schleife? Es würde Sinn machen, aber wie kann ich Oracle sagen, das zu tun? Müsste ich für jede Zeile der Tabelle abfragen und einen Zähler setzen, um jeweils nur eine Zeile abzufragen?
Ich hoffe, jemand kann mir helfen und mich in die richtige Richtung weisen, da ich schon lange versuche, mein Skript zum Laufen zu bringen. Ich habe die meiste Logik für mein Skript, aber wenn ich die Zeilen nicht in meine Liste laden kann, hilft mir meine Logik überhaupt nicht.
definiere ich 'rows'in der ersten Zeile des Codes $. Es ist eine ArrayList. – Obongo
Meine Schuld. völlig übersehen. Gibt es einen Grund, der aus dem try-Block heraus definiert wurde? Und warum benutzt du '[string]' s 'format()' Methode? (Sollte es nicht mindestens 2 Parameter haben?) – Clijsters
Kein Problem, danke für die Codeformatierung. Ich habe es definiert, weil ich in meinem Skript die meisten Variablen definiere, die im gesamten Skript im Startabschnitt verwendet werden. – Obongo