Oracle Magazine
| developer WINDOWS
.NET用のツール
Oracle Developer Tools for Visual Studio .NET(ODT)を使用すると、Windows上でのOracle Databaseの開発作業を素早く、かつ簡単におこなうことができます。 たとえば、Oracle Databaseから取得したデータを操作するC#やVB.NETのルーチンを開発しているとします。 ストアド・プロシージャの編集およびテスト、表内のデータの変更、表やビューの構造の変更、そのほかのさまざまなデータベース関連のタスクを実行するために、データベースにアクセスする必要があります。 これまでは、こうしたタスクを管理するのにSQL*PlusやToadなどのツールを使用していましたが、こうしたタスクをすべてMicrosoft Visual Studio .NET内から直接実行するためのツールセットがあれば便利だと考えている方も多いでしょう。 つまり、グラフィカルなデザイナとウィザードが組み込まれていて、特定のデータベース操作を実行するために必要なSQLの作成という面倒な仕事を引き受けてくれる、 さらには、C#やVB.NETのデータ・アクセス・コードを自動的に生成してくれる、そんなツールセットです。 Oracle Developer Tools for Visual Studio .NETは、まさにそうした望みをかなえるツールです。 ODTのリリースにより、上記すべての機能が実現されました。 この記事では、ODTが提供しているさまざまな機能を簡単に紹介します。 また、Oracle Database 10g Release 2 for Windowsに組み込まれている新しい.NETストアド・プロシージャの機能を紹介し、ODTを使って.NETストアド・プロシージャをOracle Databaseに配置する方法を示します。 概要 ODTは、Visual Studio .NETと緊密に統合されたアドインです。 2005年6月に最初にリリースされたODTは、無償でOracle Technology Networkからダウンロードできます。 ODTのおもな機能は次のとおりです。
Oracle Explorer: Oracleスキーマを表示する 表、ビュー、またはそのほかのOracleデータベース・オブジェクトを検索し表示する必要があるときは、Oracle Explorerを使用するのが一番です。 Oracle Explorerを起動するには、メイン・メニューで、「 表示 」→「 Oracleエクスプローラ 」を選択します。 Oracle Explorer(図1参照)は、Oracleスキーマの構造を表示するためのツリー・コントロールです。 表、ビュー、パッケージ、ストアド・プロシージャなどのOracleスキーマ・オブジェクトを表示できます。 スキーマ・オブジェクトを選択すると、Visual Studio .NETプロパティ・ペインに、列データ型やストアド・プロシージャ・パラメータ型などのメタデータが表示されます。
各スキーマ・オブジェクトのコンテキスト・メニューには、さらなる機能が用意されています。 スキーマ・オブジェクトのSQLスクリプトを生成したり、提供されているフィルタを使用して、表示されるスキーマ・オブジェクトの種類を制限したり、デザイナやウィザードを実行してスキーマを変更したりできます。 たとえば、表の構造を表示した状態で、コンテキスト・メニューからOracle表デザイナを起動して表の設計を変更できます。 デザイナとウィザード: データベースの操作を簡素化する ODTには、各種のグラフィカルなデザイナやウィザードが用意されており、指示された手順にしたがって操作するだけで、データベース・オブジェクト(表、ビュー、ストアド・プロシージャ、ストアド・ファンクション、PL/SQLパッケージ、シーケンス、索引、制約、トリガー、シノニムなど)を作成または変更できます。 表デザイナを起動するには、Oracle Explorerで目的の表を右クリックし、「 設計 」を選択します。 表デザイナ(図2)を使用すれば、これまでのようにデータ型を調べたり、SQLの構文を覚えたりする必要がなくなります。 表名と列名を指定して、ドロップダウンリストから適切なデータ型を選択し、「 保存 」をクリックするだけで、表の作成や変更がおこなえます。 新しく作成したスキーマ・オブジェクトは、Oracle Explorerのツリー制御に即座に表示されます。
Oracle Data Window:表データを表示/変更する 表やビューのデータを素早く閲覧するには、Oracle Explorerで目的の表またはビューを右クリックして、「 データの取得 」を選択します。 Oracle Data Window(図3)に、分かりやすいグリッド形式で表やビューのデータが表示されます。このウィンドウで、Visual Studio .NET開発環境から離れることなく、データの挿入、更新、削除を実行できます。 行を変更した後、カーソルを別の行に移動するだけで、変更したデータが即座にコミットされます。 大きな表では、行番号を指定して特定の行に素早く移動できます。
Oracle PL/SQLエディタ プロシージャ、ファンクション、パッケージを編集するには、Oracle Explorerで目的のアイテムを右クリックして、「 編集 」を選択します。 Oracle PL/SQLエディタが表示され(図4参照)、緊密に統合された開発環境が提供されます。 ストアド・プロシージャを作成するために、Visual Studio .NETから離れる必要はありません。 Oracle PL/SQLエディタ に組み込まれているMicrosoft Visual Studioの標準機能として、コードの読みやすさを高める構文の色分け、大規模で複雑なパッケージに含まれるストアド・プロシージャやストアド・ファンクションを非表示にする折りたたみ機能などがあります。 これらの機能を使用することで、作業中のプロシージャやファンクションに容易に集中できます。 また、SQL文やPL/SQL文を入力する際には、表や列のドロップダウンリストがポップアップ表示され、文を自動補完できます。
PL/SQLコードをコンパイルするには、Oracle Explorerで目的のアイテムを右クリックし、「 コンパイル 」を選択します。 PL/SQLのコンパイル中にエラーが発生した場合は、Microsoft Visual Studio .NETのタスク・リストに出力されます。 エラー・テキストをクリックすると、エラーの発生したコード行にジャンプします。 状況依存ヘルプ・キーを押すと、問題のエラー・コードに関する 『Error Messages and Codes』 マニュアルが開かれます。 完成したストアド・プロシージャおよびストアド・ファンクションをテストするには、Oracle Explorerで目的のアイテムを右クリックして、「 実行 」を選択します。 ダイアログ・ボックスが表示されたら、ストアド・プロシージャまたはストアド・ファンクションの実行に必要な入力パラメータを入力できます。 ダイアログ・ボックスの「 OK 」をクリックすると、コードが実行されます。 ストアド・プロシージャの実行結果、すなわち出力パラメータは、最終ウィンドウ(図5参照)に表示されます。REF CURSORなどの複雑な出力型はリンクとして表示されます。リンクをクリックすると、複雑なデータがグリッド形式で表示されます。
自動コード生成 Oracle Explorerからアプリケーションのフォームにスキーマ・オブジェクトをドラッグ・アンド・ドロップすると、そのスキーマ・オブジェクトに対する SELECT 、 UPDATE 、 INSERT 、および DELETE の各操作に対応するコードが自動生成されます。 自動生成されるコードでは、Oracle Data Provider for .NET(ODP.NET)で提供されている OracleDataAdapter クラスが使用されます。 このクラスは、ADO DataAdapter クラスの派生クラスなので、 Oracle以外のデータベースであっても、 DataAdapter クラスを使用した経験のある開発者であれば、簡単に理解できます。 次に、 DataAdapter クラスを使用して、アプリケーションのフォーム上のUI要素( DataGrid 要素など)をOracle Databaseに接続します。コードの追加は最小限で済みます。 Oracleの表またはビューに基づく、型指定されたデータセットまたは型指定されていないデータセットに対応するコードも生成できます。 コードを生成するには、フォーム上のOracleDataAdapterアイコンを右クリックして、「 DataSetの生成 」を選択します。 次に、このデータセットをデータソースとしてUI要素にバインドするか、Microsoft Visual Studio .NETを介して別の標準の方法(Microsoft Visual Studio XMLスキーマ・デザイナなど)で使用します。Oracle Database Extensions for .NET: 最初の.NETストアド・ファンクション オラクルは、Windows版Oracle Database 10g Release 2で、Oracle Database Extensions for .NETの提供を開始しました。 このデータベース・オプションを使用すると、.NETマネージド言語で記述されているストアド・プロシージャおよびストアド・ファンクションをWindows上のOracle Databaseに配置できます。 このデータベース・オプションは、デフォルトではインストールされません。このオプションを有効にするには、データベースのカスタム・インストールをおこなう必要があります (.NETストアド・プロシージャを実行するためのデータベースの設定の詳細については、 『Oracle Database Extensions for .NET 開発者ガイド』 を参照してください)。 このデータベース・オプションはWindowsプラットフォーム上でのみ使用できます。プラットフォームに依存しないソリューションを必要とする場合は、従来どおり、PL/SQLとJavaを使用する必要があります。
次の手順にしたがって、最初の.NETストアド・ファンクションを作成および配置してください。 手順1:
「
ファイル
」→「
新規作成
」→「
プロジェクト
」→「
C#プロジェクト
」→「
Oracle Project
」を選択して、Oracleプロジェクトを開きます。
手順10:
「
終了
」をクリックすると、アセンブリが配置され、ストアド・ファンクションがOracle Databaseに登録されます。 これで、Oracle ExplorerのFunctionsノードに
GETDEPARTMENTNO
ファンクションが追加されます。
コード・リスト1: getDepartmentnoストアド・ファンクション
using System;
using System.Data;
using Oracle.DataAccess.Client;
namespace Project1
{
/// <summary>
/// Summary description for Class1.
/// </summary>
public class Class1
{
public static int getDepartmentno(int empno)
{
int deptno = 0;
// Get a connection to the db
OracleConnection con = new OracleConnection();
con.ConnectionString = "context connection=true";
con.Open();
// Create and execute a command
OracleCommand cmd = con.CreateCommand();
cmd.CommandText = "select deptno from emp where empno = :1";
cmd.Parameters.Add(":1", OracleDbType.Int32, empno,
ParameterDirection.Input);
OracleDataReader rdr = cmd.ExecuteReader();
while(rdr.Read())
deptno = rdr.GetInt32(0);
rdr.Close();
cmd.Dispose();
// Return the employee's department number
return deptno;
}
}
}
まとめ この記事では、Oracle Databaseを使用した.NET開発を迅速かつ容易にするOracle Developer Tools for Visual Studio .NETのおもな機能を紹介しました。 また、.NETストアド・ファンクションを開発し、Microsoft Windows版Oracle Database 10g Release 2に配置する手順を示しました。 Christian Shay ( christian.shay@oracle.com )は、オラクルのprincipal product managerです。 |