C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 93 を表示中)
■55721 / )  プロシージャの戻り値がnullの時
□投稿者/ ペンギン (1回)-(2010/12/10(Fri) 15:23:43)

分類:[C#] 

お世話になっております。
現在C#での開発をおこなっていて行き詰ったのでご質問させていただきます。

以下環境で開発を行っています。
OS :Windows7
開発ツール :VisualStudio2010
開発言語 :C#
ミドルウェア:.NetFrameWork4.0
Oracle :OracleDatabase 9.2.0.8
    Oracle Client 11.2.0
     Oracle Data Provider for .NET 4 11.2.0.1.2
     Oracle Provider for OLE DB 11.2.0.1.0
[現象]
画面からPL/SQLのストアドプロシージャをコールし、戻り値を画面に表示
する処理で不具合が発生しています。

処理の内容をざっくりと説明しますと、
Oracle.DataAccess.Client.OracleDataAdapterクラスから作成されたオブジェクトの値を
Hashtableに格納し、それをString型の変数に格納して文字列を画面に表示しています。
この時、戻り値がnullだと画面に「NULL」と表示されてしまいます。

調べてみたところ、Hashtableに値を格納する際に、nullが"NULL"という文字列に変換されていました。

さらに、PL/SQLの戻り値がnullの時Oracle.DataAccess.Client.OracleDataAdapter
クラスから作成されたオブジェクトのvalue値でエラーが発生していました。
Value値に「型 'Oracle.DataAccess.Types.OracleNullValueException' の例外をスローしました。」
というエラーメッセージが出力され、Value直下のbaseに
"NULLデータの処理が無効です。"と出力されます。

[質問]
http://otndnld.oracle.co.jp/document/products/oracle10g/102/windows/B31247-01/OracleNullValueExceptionClass.htm

こちらを見た限りこのエラーは、「NULL値が含まれるODP.NETタイプ構造にアクセスを試みたときに表示される例外」との
ことですが、OracleDataAdapterクラスから作成されたオブジェクトの値にはNULLを格納してはいけないということなのでしょうか?

分かりづらい文章で申し訳ございません。
必要な情報が足りなかったら補足します。
どうぞよろしくお願いいたします。
返信 編集キー/


管理者用

- Child Tree -