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

関連記事

Excelのシートが表示されなくなった時の対処法

Excelのシートが表示されなくなった! なんか、少しだけいつものExcelの画面と違いませんか? 人によっては、見慣れた画面かもしれませんが、左下にあるべきものがありません・・・ ちなみに、シートを …

[ORACLE]Oracle 11g XEの文字コードの変更

Oracle 11g XE を普通にインストールするとUFT-8になりますが、場合に寄っちゃSJISで設定しなきゃいけないときもあるので、その手順。 SJISのdumpを渡される 以前、疑問に思ったの …

ORACLEでDELETEとTRUNCATEのどちらを使うか。

未だに迷う。 例えば、テーブル全件削除をしたいときは delete * from tableA; delete文なら、こうだし。 truncate tableA; truncate文なら、こう。

DLLのプロパティのブロック解除をして、ダウンロードしたプログラムを起動出来るようにする。ダウンロードしたプログラムが実行できない時の対処法。

よくありますよね・・・ 予期せぬエラーってなんだよ(`・∀・´) 特にお客さんの目の前で「デンッ!!」っていうエラー音と共に表示された時の微妙な空気感がたまりません (╹◡╹) (^ω^) :(;゙゚ …

no image

ToolTip(ツールチップ)のPictureBoxに登録ものが表示されなくなった

PictureBoxに関連付けてたToolTip(ツールチップ)が表示されなくなる~C# http://ameblo.jp/oregano-blog/theme-10017227400.html 事の …


カテゴリー