.NETでOracleアプリを作ろう(5) Page 1/4
VB.NETで楽々Oracleストアド・プロシージャ作成
日本オラクル
小海 友和
2006/3/7
本記事では、Oracleが提供する.NETプラットフォーム開発向けのミドルウェアやツールを使って、.NET環境でOracleアプリケーション開発を効率的に行うためのノウハウを解説する。(編集部)
| 主な内容 --Page 1--
--Page 2--
--Page 3--
--Page 4--
|
前回「Oracleにも“SQL CLR”と同じ開発生産性を!」では、Oracle Database 10g Release2の新機能であるOracle Database Extensions for .NET(以下、ODE.NET)を使用して、簡単な.NETストアド・プロシージャを作成する手順を紹介しました。今回は、.NETストアド・プロシージャでOracleデータベースにアクセスする方法について説明します。.NETストアド・プロシージャからOracleデータベースへアクセスするには、Oracle Data Provider for .NET(以降、ODP.NET)を使用します。
まずは、データベースにアクセスする簡単な.NETストアド・プロシージャとして、社員表(EMP表)の社員番号(EMPNO)を渡すと社員名(ENAME)を返し、該当社員がいない場合は「該当なし」を返す関数(GetEname)を作成してみましょう。
| メモ:EMP表はSCOTTユーザーにデフォルトで存在するサンプルの表です。SCOTTユーザーについては第2回に記述したように、アカウントをアンロックする必要があります。 |
手順1 新規プロジェクトの作成
Visual Studio .NET(以下、VS.NET)より新しいプロジェクトを作成します。この際、Oracle Projectを選択してください。Oracle Projectとして、VS.NETのプロジェクトを開始した場合、クラスファイルの先頭にリスト1のようにODP.NETを使用するために必要な名前空間があらかじめ記述されています。
Imports Oracle.DataAccess.Client |
| リスト1 Oracle Projectであらかじめインポートされる名前空間 |
手順2 ファンクションの作成
リスト2のようにファンクションを作成します。データベースにアクセスする部分については、ODP.NETを使用します。
Public Shared Function GetEname(ByVal empno As Int16) As String |
| リスト2 GetEname関数(VB.NET) |
ODP.NETでの開発の詳細については、@ITの記事「ODP.NETファーストステップ」をご覧ください。.NETストアド・プロシージャを作成する場合でも、基本的なコーディングは通常のODP.NETでの開発と変わりはありませんが、.NETストアド・プロシージャでは、リスト3のように接続情報を記述することができます。
' データベースへの接続の準備 |
| リスト3 .NETストアド・プロシージャでのデータベース接続情報(VB.NET) |
「context connection=true」とすることで、すでに張られている呼び出し元のコネクションを引き継いで利用することができます。すでに接続しているコネクションを利用するため、ユーザー名やパスワードなどの接続情報は記述する必要がありません。
| メモ:「context connection」は.NETストアド・プロシージャだけで使用可能な属性です。 |
この接続方式を使用する場合、コネクションと同時にトランザクションも引き継ぎますので、明示的にトランザクションを開始することができません。新規にトランザクションを開始したい場合は、通常どおり「user id=scott; password=tiger; data source=orcl」などと記述して、新規コネクションを使用する必要があります。
手順3 .NETストアド・プロシージャのデプロイ
コードの記述後、「ビルド」−「ソリューションの配置」をクリックしてOracle Deployment Wizard for .NET起動し、.NETストアド・プロシージャをデプロイします。この際、「メソッドおよびセキュリティ詳細を指定」では、スキーマとして「SCOTT」、セキュリティは「安全」を指定します。
![]() |
| 図1 Oracle Deployment Wizard for .NETでメソッドおよびセキュリティ詳細を指定 |
手順4 .NETストアド・プロシージャの実行
デプロイが完了したら、実行してみましょう。
![]() |
| 図2 Oracleエクスプローラより実行 |
該当する社員番号がある場合はその社員名が、該当する社員番号が存在しない場合、「該当なし」が返されることが確認できます。(次ページへ続く)
| 1/4 |
| Index | |
| .NETでOracleアプリを作ろう(5) VB.NETで楽々Oracleストアド・プロシージャ作成 |
|
| Page
1 ・データベース・アクセス基礎 |
|
| Page 2 ・LOBデータのロード/アンロード |
|
| Page
3 ・デプロイと実行 |
|
| Page
4 ・OraClrAgentのチューニング ・おわりに |
|
| .NETでOracleアプリを作ろう |
TechTargetジャパン
- IBMが歴史を変える!? 新カテゴリの製品を発表 (2012/5/25)
IBMは新たな製品カテゴリとなる「PureSystems」を発表。DB2 10とビッグデータの関係、PureSytemsの斬新さはどこかに迫ります - クラウド時代のデータ処理を支える分散KVSの可能性 (2012/5/23)
現在、高速データ処理の主流はインメモリ型データ処理だが、別の方法として分散KVSが注目を集めている。今回は分散KVSについて話を聞いた - 複数の表からデータを取り出して表示させる(2) (2012/4/23)
前回はSQLの基本的な結合構文について説明しました。今回は、より複雑な自己結合や外部結合について説明します - SQL Server、OOWにIQ、盛りだくさんの4月 (2012/4/20)
オラクルオープンワールドが3年ぶりに東京で開催されたほか、SQL Server 2012が提供開始されるなど、今月は話題が盛りだくさんです
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -


