続) 何度だって引っかかる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, 開発メモ
-, ,

関連記事

MSCOMCTL.OCXの読み込みに失敗しましたエラーの対応方法

結論から言うと、マイクロソフトのページから、必要なものをDLして、適用しましょうって話。 OS:Windows7 Pro 64bit DLしたファイル:VisualBasic6-KB896559-v1 …

SQLのJOINの種類を理解する

これは分かりやすい。 https://blog.codinghorror.com/a-visual-explanation-of-sql-joins/ INNNER JOIN FULL OUTER J …

コマンドプロンプトのFor文で、ファイルの一覧を表示する。

コマンドプロンプトの出力結果を引数として、別のコマンドを実行させる。 なんてことが出来ることは知ってるんだけど、どうやってやるのかは良く分からない。 おもむろにコマンドプロンプトを立ち上げて、以下のコ …

[C#]DateTimePickerは、CloseUpイベントで日付変更を取得する

日付関連で、取得した値がどうか?ってのを検出して判定する必要が出たのでメモ。 CloseUpイベントで何が判定されるのか? https://msdn.microsoft.com/ja-jp/libra …

OracleでLISTAGG関数を使ったけど、世界を変えられなかった話・・・

OracleでLISTAGG関数を使ったら、世界が変わった話。 はい、休日出勤でした。 そして、休日出勤の結果、以下のことが分かりました(泣 日本の中心付近で仕様変更と闘うSE日記OracleでLIS …


カテゴリー