事象
SQLServerに対してJDBC経由でSQLを実行すると、
スカラー変数"@P0AND"を宣言してください。
というエラーが発生する。
Management Studioやsqlcmdなどで同じSQL文を実行しても、上記エラーは発生しなかった。
原因
パラメータマーカーと文の間にスペースが無かっただけであった。。。
("select * from HOGE WHERE a=?b=SCHEMA_NAME()"みたいな文を書いていた…。)
すぐに分からなかった理由
パラメータマーカーの後ろの条件文に関数を用いていた。
そのため、関数を用いる際に何かが足りていないのかとそちらばかり目を向けてしまっていた。
(買うのが嫌ならMSDN)