OracleのPowerShellからテーブルを読み込み、ArrayListに保存しようとしています。接続は機能していますが、最初の行が読み込まれた後にその行を読み込むことはできません。Oracleテーブルから複数の行を読み取る
ここで私がやろうとしていることがあります。
$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"
}
私の問題は、私はテーブルの最初の行だけを読んでいます。どうすればそれらをすべて読むようにOracleに伝えることができますか?最初にcount
にしてから各行をクエリする必要がありますか?
コード内で$rows
の内容を確認していますが、この部分が機能していることがわかっているので質問にはあまり関係ありません。 私はOracleで試したので、私のクエリが何かを返すことを知っています。
ループにはforeach
ループが必要ですか?それは理にかなっていますが、どうすればOracleにそのことを伝えることができますか?テーブルの各行を照会し、一度に1つの行のみを照会するようにカウンターを設定する必要がありますか?
誰かが私を助けて正しい方向に向けることを願っています。私は既にスクリプトの作成に長時間をかけています。私はスクリプトのロジックをほとんど持っていますが、私のリストに行をロードできなければ、私のロジックは私を助けません。
私は 'コードの最初の行rows'in $を定義します。これはArrayListです。 – Obongo
私のせいです。完全に監督する。 tryブロックから定義されている理由はありますか?なぜ '[string]'の 'format()'メソッドを使うのですか? (少なくとも2つのパラメータを持っていてはいけないのですか?) – Clijsters
コードのフォーマットには問題ありません。 私のスクリプトでは、スクリプト全体で使用されているほとんどの変数を開始セクションで定義しているので、私はそれを定義しました。 – Obongo