連載
» 2006年02月07日 00時00分 公開

Oracleにも“SQL CLR”と同じ開発生産性を!.NETでOracleアプリを作ろう(4)(3/4 ページ)

[小海友和,日本オラクル]

.NETストアド・プロシージャの開発とデプロイ

 ODE.NETを使用するための準備が終わったら、VS.NETで.NETストアド・プロシージャを作成しましょう。今回はデータベースへのアクセスのない、簡単な.NETストアド・プロシージャを作成することで、開発からデータベースへのデプロイ、デバッグまでの手順を説明します。

手順1 新しいプロジェクトの作成

 VS.NETより新規プロジェクトを作成します。ODT 10.2がインストールされた環境では、Visual Basicプロジェクト、Visual C#プロジェクトのテンプレートとして「Oracle Project」を選択することが可能です。「Oracle Project」を選択して.NETストアド・プロシージャの作成を開始します。

図7 「Oracle Project」を選択して.NETストアド・プロシージャの作成を開始 図7 「Oracle Project」を選択して.NETストアド・プロシージャの作成を開始

 Class1.vb(Visual Basicプロジェクト)やClass1.cs(Visual C#プロジェクト)が作成され、ひな型となるコードが表示されます(図8)。

図8 ひな型となるソースファイル 図8 ひな型となるソースファイル

手順2 ロジックの作成

 .NETストアド・プロシージャとしてデプロイするプロシージャやファンクションは、VB.NETの場合は「Public Shared」、C#の場合は「public static」で宣言されている必要があります。この点に注意して、引数として渡された数値を2倍にするファンクション「double_value」と半分にするファンクション「half_value」を作成してみます(リスト3)。

Public Class Class1

  Public Shared Function double_value(ByVal x As Integer) As Integer
    Return x * 2
  End Function

  Public Shared Function half_value(ByVal x As Integer) As Integer
    Return x / 2
  End Function

End Class
リスト3 簡単な.NETストアド・ファンクションのコード(VB.NET)

手順3 ソリューションの配置(デプロイ)

 コードの記述が終わったら、メニューバーより「ビルド」-「ソリューションの配置」をクリックします(図9)。これにより.NETアセンブリのビルドが行われ、データベースへのデプロイを行うためのOracle Deployment Wizard for .NETが起動します。

図9 ソリューションの配置 図9 ソリューションの配置

 Oracle Deployment Wizard for .NETは、ビルドされた.NETアセンブリを所定の位置(デフォルトではORACLE_HOME\BIN\CLR以下)にコピーしLIBRARYを作成し、その.NETアセンブリをコールする窓口となるPL/SQLラッパーを生成します。

 .NETアセンブリのデプロイはSYSDBA権限で行う必要があります。SYSDBAでの接続が作成されていない場合、新規作成ボタンをクリックして接続を作成します(図10)。

図10 SYSDBA権限での接続 図10 SYSDBA権限での接続

 .NETストアド・プロシージャを所有するスキーマやセキュリティ・レベルの設定を行います(図11)。

図11 スキーマ、セキュリティ・レベルの設定 図11 スキーマ、セキュリティ・レベルの設定

 セキュリティ・レベルは表1の3レベルが用意されています。

セキュリティ・レベル 説明
安全(デフォルト) データベース・リソースへのアクセスのみが許可される。ローカル・ファイルやネットワークなどの外部リソースへのアクセスは許可されない
外部 ローカル・ファイルの読み取りまたは書き込みと、ソケットやインターネット・ノードなどのネットワーク・リソースへのアクセスも許可される
危険 管理されていないコードの実行を含め、制限なしの実行が許可される。ほかのすべてのセキュリティ・レベルのスーパーセット
表1 セキュリティ・レベル

 ウィザードに従って設定を行うだけでデプロイは簡単に終了します。(次ページへ続く)

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。