ASP.NETのOralceアクセスでORA-01036エラー
今日はASP.NETでとあるWebアプリを作っていたのですが、.NET標準のOracleクライアントモジュールのINSERT文で以下のエラーが発生。
ORA-01036: 変数の名前/数が無効です。
同じINSERT文を別のDBツールで実行すると正常終了するので、訳が分からなくなりました。
色々調べてやっとわかった原因は以下の通りです。
実は問題のINSERT文実行箇所の前に別のストアドプロシージャを実行している箇所がありまして、そこでDbCommandオブジェクトのコマンドタイプをストアドプロシージャに変更し、更にパラメータ情報を設定していました。
このストアド実行処理の後、コマンドタイプは元に戻していたのですが、パラメータ情報をクリアするのを忘れていたため、同じDbCommandオブジェクトを使用した後ろのINSET文実行で上記のエラーが発生したという訳です。
わかってしまえば何でもないことなのですが、問題発生箇所とは別のところに原因があったため、なかなか分かりませんでした。
ネットを検索してみたところ、ORA-01036で悩なやまされる人は結構いるようです。これと同じ原因かどうかはわかりませんが、何かの参考になればと思って書いてみました。