もう5年以上前にパラメタライズドクエリのパラメタ名でトラブった話

久しぶりに、近所ではまっている場面を見かけたので、簡単な事だが書いておこう。


インスタンスの照合順序がJAPANESE_CI_ASの時


クエリ中のパラメタ名が、Abcの時にパラメタ宣言がabcとなっていても、問題なく動作する。


しかし、


インスタンスの照合順序がJAPANESE_BINとか、JAPANESE_CS_AS等、case sensitiveな設定になっている時


クエリ中のパラメタ名が、Abcの時にパラメタ宣言がabcとなっていると、Abcとabcを区別するので、”パラメタが宣言されていない”といった類のエラーになる。
これは、データベースの照合順序がcase insensitiveになっていても、発生する。
パラメタ名はインスタンスの照合順序に依存しているからである。

#ケアレスミス修正