コマンドレットとの連携
取得したデータはデータセット上にあるため、何度でも取り出して利用することができます。
データセットとPowerShellのコマンドレットを組み合わせて、データセットのデータを操作する例をいくつか紹介します。
指定した列のみ取得する
Select-Objectコマンドレットと組み合わせると、指定した列のみを取得することができます。
次のように記述すると、データセット内からEMPNOとENAMEの列だけを取得します。
PS> $dtSet.Tables[0].Rows | Select EMPNO, ENAME

指定した列で並べ替えを行う
Sort-Objectコマンドレットと組み合わせると、指定した列で並べ替えを行うことができます。
次のように記述すると、データセット内からEMPNOとENAMEの列だけを取得し、EMPNOで並べ替えて表示します。
PS> $dtSet.Tables[0].Rows | Select EMPNO, ENAME | Sort EMPNO

指定した条件に合致するデータを取得する
Where-Objectコマンドレットと組み合わせると、条件に合致するデータを取得することができます。
次のように記述すると、データセット内からEMPNOが"7900"に等しいレコードデータを取得します。
$dtSet.Tables[0].Rows | Where { $_.EMPNO -eq "7900" }

データセットのデータをXMLファイルに保存する
データセットに格納されたデータはXMLファイルとして保存を行うことが可能です。
保存を行うにはWriteXmlメソッドを使用します。メソッドの引数には保存先のパスを記述します。
PS> $dtSet.WriteXml("C:\Work\Emplist.xml")
ファイルの内容はGet-Contentコマンドレットで確認することができます。
PS> Get-Content "C:\Work\Emplist.xml"

また、保存したXMLファイルは、次のように記述することでデータセットに読み込むことが可能です。
PS> $dtSet.ReadXml("C:\Work\Emplist.xml")
まとめ
今回はPowerShellを使用して
- Oracleデータベースへの接続
- データの取得
- コマンドレットと連携しデータを加工する方法
について説明しました。特に、PowerShellのコマンドレットと連携することで、データの2次加工ができることは大きな魅力ではないでしょうか?
次回はPowerShellからOracleデータベースへのデータの登録・更新・削除を説明します。お楽しみに。
