ASP.NETのOralceアクセスでORA-01036エラー

今日はASP.NETでとあるWebアプリを作っていたのですが、.NET標準のOracleクライアントモジュールのINSERT文で以下のエラーが発生。

 ORA-01036: 変数の名前/数が無効です。

同じINSERT文を別のDBツールで実行すると正常終了するので、訳が分からなくなりました。

色々調べてやっとわかった原因は以下の通りです。

実は問題のINSERT文実行箇所の前に別のストアドプロシージャを実行している箇所がありまして、そこでDbCommandオブジェクトのコマンドタイプをストアドプロシージャに変更し、更にパラメータ情報を設定していました。

このストアド実行処理の後、コマンドタイプは元に戻していたのですが、パラメータ情報をクリアするのを忘れていたため、同じDbCommandオブジェクトを使用した後ろのINSET文実行で上記のエラーが発生したという訳です。

わかってしまえば何でもないことなのですが、問題発生箇所とは別のところに原因があったため、なかなか分かりませんでした。

ネットを検索してみたところ、ORA-01036で悩なやまされる人は結構いるようです。これと同じ原因かどうかはわかりませんが、何かの参考になればと思って書いてみました。