特集: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 -

注目のテーマ

業務アプリInsider 記事ランキング

本日 月間
ソリューションFLASH