データの取得
データセットにデータを取得するには、OracleClientではOracleDataAdapter
クラスを使用します。
OracleDataAdptrer
クラスの引数にはデータを取得するためのSQLコマンド文と作成しておいたOracleConnection
を渡します。
例としてSQL文はEMP表の全件データを取得するように記述しました。
PS> $strSQL = "SELECT * FROM EMP" PS> $oraDa = New-Object System.Data.OracleClient.OracleDataAdapter($strSQL, $OraConn)
ここまでがデータを取得するための前準備となります。
実際のデータの取得はOracleDataAdapter
クラスのFill
メソッドを使用します。Fill
メソッドの引数には、取得したデータを格納するデータセットを渡します。
[void]$OraDa.Fill($dtSet)
上記コードを実行すると$dtSet
というデータセットにテーブルが1つ作成され、その中にデータが格納されます。
データの参照
データはデータセットの中のデータテーブルに格納されています。データセットは複数のデータテーブルを持つことができるため、各データテーブルは配列オブジェクトとして表されます。
今回は、新規で作成したデータセットにデータを取り込んだため、1つのデータテーブルが作成されています。
1つめのデータテーブルは配列の要素番号が0となり
PS> $dtSet.Tables[0]
として参照することができます。
全レコードを取得する
データが格納されているテーブルは$dtSet.Tables[0]
であるということが分かりました。
まずは下記のように入力してみてください。
PS> $dtSet.Tables[0]
下図のように、取得したデータが1レコード単位で表示されます。
この表示は見づらいので、PowerShellのコマンドレットFormat-Table
と組み合わせて以下のようにすると
PS> $dtSet.Tables[0] | Format-Table
罫線こそ表示されないものの、表形式で表示されるため非常に見やすくなります。