特集:VBでOracle Database開発入門(前編)

.NETによるOracle Database開発とは?

初音 玲
2008/11/11
Page1 Page2 Page3

Oracleデータベース開発のテクノロジ

 ご存じのように、.NET FrameworkのADO.NETは、Visual Basic(以下、VB)やC#などの開発言語を使ってデータベースにアクセスするためのクラス・ライブラリだ。もちろん、Oracle Databaseも最初からアクセス対象のデータベースに含まれている。

ADO.NETとODP.NET

 次の図はADO.NETプログラミングのモデルを図にしたものである。

図9 ADO.NETのプログラミング・モデル

 この図で分かるように、最終的にデータベースをアクセスするコンポーネントが「.NETデータ・プロバイダ」である。これには、ODBC用、OLE DB用、SQL Server用、Oracle用など、データベース対象に応じたものがそれぞれ用意されており、ADO.NETでデータベース・アクセスの実装を開始する際に、適切なものを選択できるようになっている。

 例えば、Oracle Databaseと接続できる.NETデータ・プロバイダには次のものがある。ここでは4つのコンポーネントを図示している。

図10 Oracle Databaseに接続する4つの方法

 最初の3つは、その名前空間から分かるように.NET Frameworkに最初から搭載されている.NETデータ・プロバイダであり、最後の1つのOracle Data Provider for .NET(以下、ODP.NET)はオラクル社が実装、提供している.NETデータ・プロバイダだ。

 どの.NETデータ・プロバイダを使ったとしても、VBからOracle Databaseにアクセスすることはできるが、機能面や性能面を含め総合的に判断すると、やはりオラクル社自らが提供しているODP.NETの使用をお勧めする。

Oracle Data Access Componentについて

 ODP.NETは「Oracle Data Access Component」(以下、ODAC)と呼ばれるパッケージの一部としてオラクル社が提供しているものだ。ODACはオラクル社のサイトから誰でもが自由にダウンロードして使用できる(実際の使用に際しては接続先のOracle Databaseのライセンスが必要)。

 ODACの構成内容は以下のようになっている。

図11 Oracle Data Access Component
ODP.NET、ODT、ODE.NETについて詳しくは後述する。
Visual StudioやODT(Oracle Developer Tools for Visual Studio)などの開発環境と、ODP.NETのクラス・ライブラリを使ってデータベース・アクセスを実装し、ビルドを行い、.NETアセンブリ(プログラム)を生成する。出来上がった.NETアセンブリを実行するには、その運用環境にODP.NETが必要である。
単なる.NETアセンブリとしてだけでなく、.NETストアド(=.NETによるストアド・プロシージャのアセンブリ)も作成できる。.NETストアドを利用するには、運用環境にODP.NETに加えて、(Oracle Databaseに提供する拡張である)ODE.NET(Oracle Database Extensions for .NET)が必要になる。

 上の図の各要素について説明していこう。

ODP.NET

 ODP.NETはODACの中心的なコンポーネントであり、その実体は.NETデータ・プロバイダとしてOracelデータベースを操作するためのクラス・ライブラリである。よって、.NETアセンブリを実行する場合にも必要となり、ODP.NETは開発環境と実行環境の両方に導入する必要がある。

ODT(Oracle Developer Tools for Visual Studio)

 ODTは、Oracle Databaseのテーブルの内容などをVisual StudioのIDEから参照できるようにする拡張機能だ。そのため、ODTのバージョンによって、対応するOracle DatabaseおよびVisual Studioのバージョンが異なるので注意が必要だ(表3)。

  対応Oracle Database 対応Visual Studio
ODT 10.1.x.x Oracle 9i Database Release 2
Oracle Database 10g Release 1
Visual Studio .NET 2003
ODT 10.2.0.1 Oracle 9i Database Release 2
Oracle Database 10g Release 1
Oracle Database 10g Release 2
Visual Studio .NET 2003
ODT 10.2.0.2 Oracle8i R8.1.7.4以降 Visual Studio .NET 2003
Visual Studio 2005
ODT 11.1.0.6 Oracle 9i Database Release 2~ Visual Studio .NET 2003
Visual Studio 2005
Visual Studio 2008
表3 ODTバージョン別の対応
ODT 10.2までのODTは[サーバー エクスプローラ]とは別物。
ODT 11.1以降のODTは[サーバー エクスプローラ]に統合されている。

 ODTのバージョン間の違いで最も顕著なのが、ODT 11.1だ。ODT 10.2までは、IDEに「Oracleエクスプローラ」という独自のツール・ウィンドウを追加していたが、ODT 11.1からはその機能がVisual StudioのIDEのサーバ・エクスプローラに統合され、そこからOracle Database独自の管理設定ができるようになっている。

図12 独自の[Oracle エクスプローラ]から標準の[サーバー エクスプローラ]に統合

ODE.NET(Oracle Database Extensions for .NET)

 ODE.NETはクライアント側の拡張ではなくWindows上で稼働しているOracle Databaseに対する機能拡張だ。ODE.NETを使えばストアド・プロシージャの開発言語として.NET言語を使用できようになる。SQL ServerにおけるSQL CLRに相当する機能だ。

Oracle Instant Client

 Oracle Databaseを使用するVBのアプリケーションを動作させるには、ODP.NET以外に「Oracleクライアント」と呼ばれるミドルウェアが必要だ。

 以前であれば、Oracleクライアントは、Oracle Database製品のCDからOracle Installerを使ってインストールする必要があったが、最近のODACには「Oracle Instant Client」として添付されているので、ODACをダウンロードしてインストールするだけで済む(Oracle Instant Clientを個別にインストールする必要はない)。このため、非常に簡単に実行環境が作れるようになった。

 さらにOracle Instant Clientには次のような特徴がある。

  • ORACLE_HOME環境変数が不要なため、同じPC上で異なるOracleクライアントのバージョンが同時使用可能
  • アプリケーションからOracle Databaseに接続するための最小構成
  • Oracle Universal Installerによるインストールだけではなく、.zipファイルを任意のフォルダに解凍してインストールすることも可能
  • path環境変数以外に設定が必要なのは、NLS_LANG環境変数だけ
  • ISVやパートナーは自社アプリケーションといっしょにOracle Instant Clientを配布可

 次回は、より具体的な開発方法について説明する。End of Article


 INDEX
  [特集]VBでOracle Database開発入門(前編)
  .NETによるOracle Database開発とは?
    1..NETで、なぜデータベースが必要なのか?
    2.Oracle Databaseの歴史と最新のOracle 11gとは
  3.Oracleデータベース開発のテクノロジ
 
  [特集]VBでOracle Database開発入門(後編)
  SQL Server開発者のためのOracle DB入門
    1.SQL Server開発者から見たOracle Databaseの特徴
    2.Oracle DatabaseとSQL Serverのコードの主な違い
    3.VB6×Oracleから.NET×Oracle 11g移行のポイント


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)
- PR -

注目のテーマ