投稿者 魔界の仮面弁士  (社会人) 投稿日時 2024/2/28 11:35:55
おっとすれ違い。
今回、内部スタックトレースは追っても仕方ないので無視するとして:

> MsgBox(ex.Message) では、「クローズ済オブジェクトの処理が無効です」と表示されました。
OracleDataReader が閉じられた状態で、その中身を読みだそうとしているように見えますね。

DataTable に対して、table1.Load(dr) などを呼び出していたりはしないでしょうか。
こうした動作によって、IDataReader が閉じられてしまう可能性があります。

> Do While dr.Read()
あるいはデバッガ―上で、dr.Read() をウォッチ ペインやイミディエイト ペインで読み込ませていないでしょうか。
Read メソッドを呼ぶと現在行が進んでしまうので、ループ内で意図せず呼ばれると、副作用を引き起こします。

もしくはちょっと特殊ですが、Oracle の LONG型(可変長文字列型) や LONG RAW 型(可変長バイナリ型)を含むテーブルを
参照しようとした際、二回以上読みだそうとしたときに閉じられてしまう不具合があったかと思います。
(Oracle 側のパッチで修正されていた気がしますがうろ覚え)