今回はPowerShellからOracleデータベースへ接続しデータを取得する方法について説明します。
はじめに
VB.NETやC#などの言語では、データベースへアクセスするための手段が標準で備わっています。Windows PowerShellでも.NET Frameworkのクラスを利用することでデータベースへアクセスすることが可能です。
今回は、PowerShellからOracleデータベースへ接続し、データを取得する方法について説明します。
対象読者
- Windows PowerShellの基本操作が行える方。
- Oracleについて基本知識を有する方。
- 簡単なSQL文が書ける方
アセンブリをロードする
PowerShellからOracleデータベースを操作するには、事前にアセンブリをロードする必要があります。今回は.NET FrameworkのOracleClient名前空間にあるクラスを使用します。
OracleClientのアセンブリをロードするには次のように記述します。
PS> [void][reflection.assembly]::LoadWithPartialName("System.Data.OracleClient")
先頭に[void]を付けているのは、読み込んだときにアセンブリの情報が表示されないようにするためです。
OracleConnectionオブジェクトの作成
Oracleに接続するには、OracleConnectionクラスを使用します。OracleConnectionオブジェクトの作成には接続文字列が必要となります。
接続文字列の基本構文は
Data Source=接続先;User ID=ユーザーID;Password=パスワード;Integrated Security=false;
です。太字で示した箇所を実際の接続先に合わせて変更します。接続文字列の最後のIntegreated Securityですが、"User ID" および "Password" を接続文字列中に指定する場合はfalseを、現在の Windows アカウントの資格情報を認証に使用する場合にはtrueとします。
今回は「User ID」および「Password」にはOracleのサンプルであるSCOTT/TIGERを指定し、Integrated Securityはfalseとします。このようにして作成した接続文字列を変数に代入します。
PS> $ConnectionString = "Data Source=MyServer;User ID=SCOTT;Password=TIGER;Integrated Security=false;"
次に、作成した接続文字列を使用して、OracleConnectionオブジェクトを作成します。
PS> $OraConn = New-Object System.Data.OracleClient.OracleConnection($ConnectionString)
データセットの作成
OracleConnectionが作成できたら、データを取得します。今回はデータの取得にデータアダプタを使用します。この他、データの取得方法には、データリーダーを使用する方法があります。
データアダプタを使用するとデータセットやデータテーブルにデータを格納することができます。データセットやデータテーブルはアプリケーションで使用するデータをメモリ上に格納できる入れ物(オブジェクト)です。取得したデータはメモリ上に格納されるため、アプリケーションがデータベースから切断しても使用することができます。
まずはデータセットの構成について見てみましょう。
データセットは様々なテーブルから取得したデータを格納できるよう、データテーブルと呼ばれるテーブルを複数格納することができます。また、データテーブルはレコードを表す複数のDataRowから、DataRowはフィールドを表すDataColumnから構成されます。(図1)

このようにしてみるとデータセットが実際のデータベースの構造を表せるオブジェクトであることが分かります。
実際にPowerShellでデータセットを作成する場合に次のように記述します。
PS> $dtSet = New-Object System.Data.DataSet
この記事は参考になりましたか?
- Windows PowerShell 活用編連載記事一覧
-
- Windows PowerShell 活用編(12) Oracleデータベースの操作2
- Windows PowerShell 活用編(11) Oracleデータベースの操作1
- Windows PowerShell 活用編(10) XPathNavigatorクラスの...
- この記事の著者
-
HIRO(ヒロ)
HIRO's.NETのHIROです。とある半導体工場のSEです。VB.NET, C#, PowerShellによるプログラミングを楽しんでいます。最近はBlog でPowerShellについて書いています。2008/07/07にPowerShell from Japan!!というサイトを立ち上げまし...
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア
