3 Visual Studioによる開発とデプロイ
これらの項では、.NETストアド・プロシージャまたは機能を開発してOracle Databaseにデプロイするのに必要な手順を説明します。
3.1 ステップ1: ストアド・プロシージャまたはファンクションの開発とアセンブリへの組込み
Microsoft Visual Studio .NETを使用して、適切な.NET言語でストアド・プロシージャまたはファンクションを記述します。
.NETストアド・プロシージャまたはファンクションにOracle Data Provider for .NET(Oracle.DataAccess.Client
およびOracle.DataAccess.Types
)を使用して、データ・アクセスを提供します。
ストアド・プロシージャまたはファンクションを、EXEではなくDLLとしてアセンブリに組み込みます。通常、この作業にはクラス・ライブラリ・プロジェクトを使用します。
データ・アクセスを使用する.NETプロシージャまたはファンクションを設計および開発する際には、Oracle Data Provider for .NETの制限事項、特に接続およびトランザクション・セマンティクスに関する制限に注意してください。
3.2 ステップ2: Oracle Deployment Wizard for .NETの実行
Microsoft Visual StudioからOracle Deployment Wizard for .NETを実行します。Oracle Deployment Wizard for .NETは、Oracle Developer Tools for Visual Studioの一部としてインストールされます。このウィザードでは、SYSDBA
資格証明、デプロイするアセンブリの名前およびデプロイ先データベースを指定する必要があります。
3.3 ステップ3: デプロイするプロシージャまたはファンクションとセキュリティ・レベルの選択
アセンブリのメソッド・リストがOracle Deployment Wizard for .NETに表示された時点で、デプロイするプロシージャまたはファンクションを選択します。
また、セキュリティ・レベルも選択します。
Oracle Database Extensions for .NETにより、指定のセキュリティ・レベルで.NETストアド・プロシージャまたはファンクションが実行されます。セキュリティ・レベルは、.NETストアド・プロシージャまたはファンクションに付与されたコード・アクセス許可を示します。デフォルトでは、.NETストアド・プロシージャまたはファンクションはSAFEセキュリティ・レベルで実行されます。
セキュリティ・レベルは次のとおりです。
-
安全
「安全」レベルの場合、.NETストアド・プロシージャまたはファンクションからデータベース・リソースへのアクセスのみが許可されます。ローカル・ファイルやネットワークなどの外部リソースへのアクセスは許可されません。
-
外部
「外部」レベルの場合、.NETストアド・プロシージャまたはファンクションは、ローカル・ファイルの読取りまたは書込みと、ソケットやインターネット・ノードなどのネットワーク・リソースへのアクセスが許可されます。
-
危険
「危険」レベルの場合、.NETストアド・プロシージャまたはファンクションは、管理されていないコードの実行を含め、制限なしの実行が許可されます。このレベルは、他のすべてのセキュリティ・レベルのスーパーセットです。
注意:
ODP.NETがマシンワイド以外の構成でインストールされている場合、.NETストアド・プロシージャは「危険」セキュリティ・レベルでデプロイおよび構成される必要があります。
関連項目:
セキュリティ・レベルを入力するプロセスの詳細は、「手順3: デプロイするファンクションの選択」を参照してください
3.4 ステップ4: 適切なパラメータ型マッピングの判別
.NETストアド・プロシージャまたはファンクションのPL/SQLラッパーを作成するために、.NETデータ型とOracleデータ型の間の適切なマッピングを判別します。Oracle Deployment Wizard for .NETにはデフォルト・マッピングが用意されていますが、オーバーライドできます。
オーバーロードされる.NETストアド・プロシージャまたはファンクションの場合は、PL/SQLラッパーの個別名を指定する必要があります。
変換情報は、付録Aの表を参照してください。
関連項目:
「データ型変換」
3.6 ステップ6: プロシージャまたはファンクションのテスト
PL/SQLラッパーをコールして、.NETストアド・プロシージャまたはファンクションをテストします。
PL/SQLラッパーは、Oracle Developer Tools for Visual StudioまたはSQL*Plusなどのツールを使用して容易に検索して実行できます。
3.7 ステップ7: プロシージャまたはファンクションのデバッグ
.NETストアド・プロシージャまたはファンクションがコールされると、Oracleデータベース・リスナーは要求をマルチスレッドCLR外部プロシージャ・エージェントextproc.exe
にリダイレクトします。各.NETストアド・プロシージャまたはファンクションは、extproc.exe
プロセスのコンテキスト内で実行されます。
注意:
アプリケーションの問題のトラブルシューティングには、Oracle Data Provider for .NETのトレーシング・メカニズムを使用できます。『Oracle Data Provider for .NET開発者ガイド』(Microsoft Windows用)のデバッグ・トレースに関する項を参照してください。