HIRO [著] 2009/06/16 14:00

 今回はPowerShellからOracleデータベースへ接続しデータを取得する方法について説明します。

1 2 3 →

はじめに

 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

1 2 3
→
INDEX
Windows PowerShell 活用編(11) Oracleデータベースの操作1
Page1
はじめに
対象読者
アセンブリをロードする
OracleConnectionオブジェクトの作成
データセットの作成
データの取得
データの参照
全レコードを取得する
コマンドレットとの連携
データセットのデータをXMLファイルに保存する
まとめ
プロフィール
HIRO ヒロ

HIRO's.NETのHIROです。
とある半導体工場のSEです。
VB.NET, C#, PowerShellによるプログラミングを楽しんでいます。
最近はBlog でPowerShellについて書いています。

2008/07/07にPowerShell from Japan!!というサイトを立ち上げました。PowerShellユーザーが集まってブログを書いています。よろしかったら来てください。

HIRO's.NET Blog
HIRO's.NET - VB.NET, C#, PowerShell Tips -
PowerShell from Japan!!


記事へのコメント・トラックバック機能は2011年6月に廃止させていただきました。記事に対する反響はTwitterやFacebook、ソーシャルブックマークサービスのコメントなどでぜひお寄せください。

スポンサーサイト