次の方法で共有


Oracle TVF サンプル

更新 : 2005 年 12 月 5 日

企業のシナリオによっては、他のデータベース管理システムに含まれているデータと Microsoft SQL Server に格納されているデータを統合すると便利な場合があります。このサンプルでは、Oracle のマネージ コード インターフェイスを呼び出して、任意の Oracle クエリの結果を SQL Server のテーブル値関数として公開する方法を示します。この方法では、SQL Server で比較的単純な SELECT ステートメントを実行することによって、Oracle と SQL Server の両方のデータを簡単に結合できます。

このサンプルには、GetDataFromOracle テーブル値関数が含まれています。この関数は Oracle マネージ プロバイダを使用して Oracle データベースに対して任意の Oracle クエリを実行し、結果を表形式で返します。

インストール ディレクトリは、drive:\Program Files\Microsoft SQL Server\90\Samples\Engine\Programmability\CLR\OracleTVF\ です。

シナリオ

Jane は Adventure Works Cycles の開発者です。Oracle データベース内のデータと データベースに格納されているデータを統合する必要があります。

言語

Transact-SQL、Visual C#、および Visual Basic。

機能

Oracle TVF サンプルでは、Microsoft SQL Server の次の機能を使用します。

アプリケーション エリア 機能

全体

共通言語ランタイム、Oracle マネージ プロバイダ、Transact-SQL

前提条件

このサンプルを実行する前に、次のソフトウェアがインストールされていることを確認してください。

  • Microsoft SQL Server 2005 または Microsoft SQL Server 2005 Express Edition (SQL Server Express)。SQL Server Express は、SQL Server 2005 Express Edition ドキュメントとサンプルの Web サイトから無料で入手できます。
  • SQL Server 2005 データベース エンジンのサンプル。これらのサンプルは SQL Server 2005 に含まれています。これらの最新バージョンは、SQL Server デベロッパー Web サイトからダウンロードできます。
  • .NET Framework SDK 2.0 または Microsoft Visual Studio 2005。.NET Framework SDK は無償で入手できます。詳細については、「.NET Framework SDK のインストール」を参照してください。
  • Oracle 10g を実行しているサーバー。以前のバージョンの Oracle がインストールされている場合は、古いサーバー上のテーブルに一致するように、アクセスするテーブルと列を修正する必要があります。10g よりも前の Oracle バージョンを使用している X64 ベースのハードウェアでは、このサンプルが動作しない可能性があります。Windows Vista でこのサンプルを使用する場合は、Oracle のカスタマ サービス担当者に連絡し、Windows Vista で Oracle 10g を使用できるかどうか確認してください。

サンプルのビルド

まだ厳密な名前のキー ファイル UnsafeSampleKey.snk を作成していない場合は、次の手順に従ってキー ファイルを生成します。

厳密な名前のキー ファイルを生成するには

  1. Microsoft Visual Studio 2005 コマンド プロンプトを開きます。[スタート] ボタンをクリックし、[すべてのプログラム][Microsoft Visual Studio 2005][Visual Studio Tools] の順にポイントして、[Visual Studio 2005 コマンド プロンプト] をクリックします。

    または

    Microsoft .NET Framework コマンド プロンプトを開きます。[スタート] ボタンをクリックし、[すべてのプログラム][Microsoft .NET Framework SDK v2.0] の順にポイントして、[SDK コマンド プロンプト] をクリックします。

  2. コマンド プロンプトでディレクトリ変更 (CD) コマンドを使用して、コマンド プロンプト ウィンドウの現在のフォルダを Samples フォルダに変更します。

    ms345278.note(ja-jp,SQL.90).gifメモ :
    サンプルが配置されているフォルダを調べるには、[スタート] ボタンをクリックし、[すべてのプログラム][Microsoft SQL Server 2005][マニュアルとチュートリアル] の順にポイントして、[サンプル ディレクトリ] をクリックします。既定のインストール場所を使用している場合、サンプルは <system_drive>:\Program Files\Microsoft SQL Server\90\Samples にあります。
  3. コマンド プロンプトで、次のコマンドを実行してキー ファイルを生成します。

    sn -k UnsafeSampleKey.snk

    ms345278.note(ja-jp,SQL.90).gif重要 :
    厳密な名前のキー ペアの詳細については、MSDN の Microsoft .NET Development Center にある「Security Briefs: Strong Names and Security in the .NET Framework」を参照してください。

Oracle TVF サンプルをビルドするには

  1. Visual Studio 2005 および提供されている Visual Studio ソリューションを使用するか、.NET Framework SDK 2.0 に含まれている Microsoft MSBuild を使用して、サンプルをコンパイルします。.NET Framework コマンド プロンプトで、次のようなコマンドを実行します。

    msbuild /nologo /verbosity:quiet /property:Configuration=Debug CS\OracleTVF.sln

  2. AdventureWorks データベースがインストールされていることを確認します。

  3. 既定の場所に SQL Server エンジン サンプルをインストールしなかった場合、サンプルのインストール先が参照されるように、Scripts\InstallCS.sql スクリプトの CREATE ASSEMBLY 部のパスを変更します。

  4. 使用している SQL Server インスタンスの管理者でない場合、インストールを完了するためには CreateAssembly 権限が管理者から付与されている必要があります。

  5. Visual C# プロジェクトと Visual Basic プロジェクトのどちらをコンパイルしたかに応じて、Microsoft SQL Server Management Studio でファイル scripts\installCS.sql または scripts\installVB.sql を開きます。ファイルに記述されているスクリプトを実行するか、コマンド プロンプト ウィンドウで次のようなコマンドを実行します。

    sqlcmd -E -I -i Scripts\InstallCS.sql

サンプルの実行

Oracle TVF サンプルを実行するには

  1. Microsoft Management Studio またはメモ帳などのテキスト エディタで Scripts\Test.sql ファイルを開きます。スクリプト内で、<server name>、<user name>、および <password> を、使用する Oracle サーバーの名前とそのサーバーで使用する資格情報に置き換えます。このサンプルは、Oracle によって配布されたサンプル データベースで実行するように設計されています。既定ではユーザー scott に関連付けられていますが、データベース管理者が別の資格情報を要求することもあります。Management Studio でスクリプトを実行するか、メモ帳でスクリプトを保存します。次に、コマンド プロンプト ウィンドウで次のコマンドを実行します。

    sqlcmd -E -I -i Scripts\Test.sql

サンプルの削除

Oracle TVF サンプルを削除するには

  1. Management Studio で scripts\cleanup.sql ファイルを開きます。ファイルに記述されているスクリプトを実行するか、コマンド プロンプト ウィンドウで次のコマンドを実行します。

    sqlcmd -E -I -i Scripts\cleanup.sql

コメント

このサンプルを正しく機能させるためには、SQL Server 2005 または SQL Server Express の共通言語ランタイムを有効にする必要があります。

サンプルは、演習目的で利用するためにのみ提供されています。サンプルを運用環境で使用することは想定されていないため、運用環境でのサンプルのテストは行われていません。Microsoft では、これらのサンプルに関する製品サポート サービスを提供していません。システム管理者の承認を得ることなく、サンプル アプリケーションやサンプル アセンブリを、運用中の SQL Server データベースやレポート サーバーに接続したり、これらのデータと共に使用することは避けてください。