SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Windows PowerShell 活用編

Windows PowerShell 活用編(11)
Oracleデータベースの操作1


  • X ポスト
  • このエントリーをはてなブックマークに追加

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

  • X ポスト
  • このエントリーをはてなブックマークに追加

はじめに

 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

会員登録無料すると、続きをお読みいただけます

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

次のページ
データの取得

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
Windows PowerShell 活用編連載記事一覧

もっと読む

この記事の著者

HIRO(ヒロ)

HIRO's.NETのHIROです。とある半導体工場のSEです。VB.NET, C#, PowerShellによるプログラミングを楽しんでいます。最近はBlog でPowerShellについて書いています。2008/07/07にPowerShell from Japan!!というサイトを立ち上げまし...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/3966 2012/07/09 15:30

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング