続) 何度だって引っかかるORACLEのエラー・・・。ORA-01008:バインドされていない変数があります。

投稿日:

この土日は休日出勤でした・・・

そして、昨日・・・新しい現象が発生しました。

以前書いた記事で、

  • パラメータ自体が不足
  • 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"]);

このように、パラメータを使用している箇所の分だけ設定してやる必要がありました。

こんなん・・・気付かんて。







-C#, ORACLE, 開発メモ
-, ,

関連記事

デグレをぶちかましたので、開発作業を1週間以上止められた話。

自分が改修を担当した画面でデグレが発覚してしまい、開発作業を1週間以上止められました。 止められたのは自分だけですが、マジです。 そんだけ、開発現場において、デグレってのは駄目な話です。 一回、こうい …

「別のプログラムがこのフォルダーまたはファイルを開いているので、操作を完了できません。」と表示された場合の対処法:Windows7

今日は2017年秋期の情報処理試験でしたが、受験されたみなさまいかがでしたでしょうか? ろくすっぽどころか、参考書すら買ってない状態だけど、情報処理試験の午前だけは受けに行く(起きれたら)。 午前は択 …

ORACLEでCASE文を使用した時にORA-00932のエラーが出る

割と悩んだ・・・ 原因は、CASE文で使用している項目のデータ型が異なるのが原因みたいだけど、正直、ぴんと来てない現実w select case name when ‘A’ then ‘あ’ when …

[ORACLE]最初の有効値を返すCOALESCE・・・読み方分からねぇw

知らなかったら、多分CASEとかで判定してた。 まぁ、人の書いたSQLは勉強になるよねって話・・・じゃないなw 事の発端は、今のプロジェクトで別の人が作った画面の修正をやることになったこと。 その人は …

ORACLEでSPOOL処理の高速化を試す

ORACLEでSPOOL処理の高速化を考えてみた 事の発端は、お客様のお怒りでした・・・ なんで、お客さんに最新版のリリース時には、必ずスキーマ間の比較をすることを徹底しろと言われてしまったと。 まぁ …


カテゴリー