この土日は休日出勤でした・・・
そして、昨日・・・新しい現象が発生しました。
以前書いた記事で、
- パラメータ自体が不足
- SQL中のパラメータ名と、ソース上のパラメータ名が違う
- 入力したパラメータが正しくない(数値項目にテキストetc…)
こういった原因は以前調べた時に認識していたので、まずはそこから調べたものの、どれにも該当しない・・・
ただ、エラー自体は「ORA-01008:バインドされていない変数があります。」が相変わらず返ってくる。
で、結論。
パラメータの不足が原因でした。
ただ不足と言いつつも、SQLDeveloperとかで実行する分には全くエラーにならないので原因にたどり着くまでにすごく時間がかかりました。
SELECT A.param AS param A.use_flg AS use_flg : : FROM table1 A WHERE A.param = :param1 OR ( use_flg = 1 AND A.param <> :.param1 )
こんな感じで同じパラメータを2回使用している場合、
command.Parameters.Add(":param1", (string)whereTable["param1"]); command.Parameters.Add(":param1", (string)whereTable["param1"]);
このように、パラメータを使用している箇所の分だけ設定してやる必要がありました。
こんなん・・・気付かんて。