検索
連載

VB.NETで楽々Oracleストアド・プロシージャ作成.NETでOracleアプリを作ろう(5)(3/4 ページ)

本記事では、Oracleが提供する.NETプラットフォーム開発向けのミドルウェアやツールを使って、.NET環境でOracleアプリケーション開発を効率的に行うためのノウハウを解説する。(編集部)

PC用表示 関連情報
Share
Tweet
LINE
Hatena

手順3 LOBデータをアンロードするプロシージャの作成

 次に格納されたLOBデータを取り出すためのプロシージャ(Unload_LOB)を続けて作成します(リスト5)。このプロシージャは、格納されているデータのファイル名(filename)とLOBデータの出力先(out_dir)を渡して実行されることで、指定した出力先にLOBデータをファイル名として出力します。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 このプロシージャでは、データベースへ接続後、OracleDataReaderでBLOBデータを読み出し、そのデータをFileStreamを用いて、指定のディレクトリにファイルとして書き出します。

 BLOBデータのファイルへの書き出しも、PL/SQLパッケージとして用意されている「dbms_lob」を使用したPL/SQLブロックを作成することで可能ですが、長く複雑なものになってしまいます。

 単純なデータアクセスだけの場合、パフォーマンスなどの点でPL/SQLストアド・プロシージャに多くのメリットがありますが、ファイルへの入出力や、複雑な計算を要する場合などでは、プログラミング言語としての慣れのほかにも.NETストアド・プロシージャにメリットを見いだせるケースも多いでしょう。

デプロイと実行

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

 Load_LOBとUnload_LOBのコードを記述した後、「ビルド」?「ソリューションの配置」をクリックしてOracle Deployment Wizard for .NETを起動し、.NETストアド・プロシージャをデプロイします。この際、「メソッドおよびセキュリティ詳細を指定」では、スキーマとして「SCOTT」、セキュリティは「外部」を指定します。これらのプロシージャは、ローカルファイルへ入出力を行いますので「外部」を指定する必要があります。

図4 Oracle Deployment Wizard for .NETでセキュリティは「外部」を指定
図4 Oracle Deployment Wizard for .NETでセキュリティは「外部」を指定

.NETストアド・プロシージャの実行

 デプロイが無事完了したら、.NETストアド・プロシージャを実行してみましょう。.NETストアド・プロシージャは、Oracleエクスプローラより実行することもできますが、PL/SQLストアド・プロシージャと同様、SQL*Plusからの実行やほかのアプリケーションからの呼び出しも可能です。

 リスト6は、SQL*Plusでの実行例です。まず、C:\SOURCEというディレクトリに10g.gifというファイルを用意します。Load_LOBプロシージャを使用して10g.gifファイルをデータベースに格納します。その後、Unload_LOBプロシージャを使用して、データベースに格納されているLOBデータをC:\OUTディレクトリに出力しています。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る