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

関連記事

no image

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

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

Excelでシートをコピーする時に、「名前が既に存在します。」と言われるのを回避して、Excel出力を早くしたい。

結論から書いてしまうと、名前の重複を削除しても、Excelの出力は別に早くならなかった。 早くなるという意味だと、手動でシートをコピーした時に、いちいちダイアログの対応をしなくて済むので、自分で作業し …

VisualStudioでデータテーブルの中身確認できるの便利すぎワロタw

DataSetビジュアライザーで、DataTableの中身が確認できるのが便利すぎたのでメモ。 データテーブルって気軽に使えるけど、中身の確認がしち面倒くさい件 本当のところはどうなのか?ってのは知ら …

[ORACLE]ora-12638 資格証明の取出しに失敗しましたと表示される原因と対処法

客先で起こった内容。 状況 客先のdumpを取得するために、用意されているバッチファイルを実行した時に発生 ora-12638 資格情報の取出しに失敗しました バッチファイルの黒い画面で一瞬だけエラー …

[VMWare Fusion]VMWare Fusion 12を導入した話

  日本の中心付近で仕様変更と闘うSE日記 1 Pocket[VMWare Fusion]VMWare Fusion 11がBigSurで使えなかった話。http://ht-jp.net/b …


カテゴリー