Thursday, April 24, 2008

SQL*PLUSもどきを作る その1(PowerShell Tips) で紹介した関数PSOracleの説明です。

まずは使用方法ですが、コマンドラインで

PS > PSOracle

と入力します。すると「ユーザー名「パスワード」「接続先」を聞かれるので順に入力します。

ユーザー名を入力してください: scott
パスワードを入力してください: *****
接続先を入力してください: server01

Oracle 8i Release 8.1.7.1.1 -Production

うまく接続ができると、接続先のサーバーのバージョンが表示されます。

ちなみに、コマンドラインで

PS > PSOracle -?

とすると使用方法が表示されます。

では、順を追って解説していきたいと思います。

1.PSOracle用ライブラリの読み込み

PSOracle関数を呼び出すと、最初にMy Documents\WindowsPowerShell\Oracle フォルダ内にある*.ps1ファイルを読み込み、PowerShellに関数を登録します。

こうすることで、PSOracleが実行されたときに、必要な関数を登録します。

SQL*PLUSもどきで必要な関数を*.ps1ファイル化して、このフォルダに置くことで、PSOracleを拡張していくことを可能にしてます。

動的にPowerShellに関数を登録するには呼び出し演算子(&)を使用して登録しています。

2.ユーザーからの情報取得

ユーザーから情報を取得するにはRead-Hostコマンドレットを使用します。

パスワードに関しては、入力した文字が丸見えでは困るので -assecurestring パラメータを付加しています。こうすることで入力した文字は*で表示されます。

3.グローバル変数の作成

PSOracleの関数を抜けてしまうと、ユーザーから取得した接続先情報が失われてしまうのでグローバル変数に登録します。

グローバル変数の作成は Set-Variableコマンドレットを使用して -Scopeパラメータで"Global"を使用します。

ここで作成した変数に、ユーザーから取得した情報をセットすることで、関数を抜けた後でも再利用できるようにしています。

4.Oracleへ接続する

Oracleへの接続はOracleClientを使用しています。

PSOracleが読み込まれたときに、System.Data.OracleClientをロードして使用可能にしています。

接続文字列は、自作関数 Get-OracleConnectionString(次回説明予定)で作成しています。この接続情報を元にOracleへ接続してサーバ情報を取得するSQL文を実行しデータセットへ結果を取得します。

5.エラートラップ

接続時のエラートラップは trap {} で行います。

これはVB.NETやC#でいうところのcatchの部分に相当します。 VB.NETやC#を扱っているとtry部分がないのが気になるところです。 関数内で例外が発生すると trap 部分が処理されます。

 

Thursday, April 24, 2008 8:38:24 AM (Tokyo Standard Time, UTC+09:00)  #    Comments [0]  |  Trackback
Comments are closed.

Theme design by Jelle Druyts

Pick a theme: