■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を格納してはいけないということなのでしょうか?
分かりづらい文章で申し訳ございません。 必要な情報が足りなかったら補足します。 どうぞよろしくお願いいたします。
|
|