ODP.NETの【ORA-01745: ホスト/バインド変数名が無効です】に対処

2022年4月8日C#,IT

SQLにパラメータ変数をバインドしようとした所、
【ORA-01745: ホスト/バインド変数名が無効です】が発生しました。
理由が分からず混乱しましたが、
原因はとてもシンプルなものでした。

原因

oracleの予約語を指定したのが原因でした。

oracleCommand.parameters.Add(new OracleParameters(":date","hoge"));
oracleCommand.parameters.Add(new OracleParameters(":number",24));

ソースの該当部が上記です。

とりあえず上記のnumberdateoracle予約語なので変数名に指定できません。
変数名を変更した所、正常に動作しました。

oracle予約語かどうか調べたい時は下記サイトを閲覧して確認しましょう。
oracle予約語一覧

まとめ

単純なことですが、原因解明にそれなりの時間を浪費しました。
もったいない……。

2022年4月8日C#,IT

Posted by raishin