検索のリクエストだからといって、入力されたパラメータをバリデーションせずにそのまま SQL にバインドしてはだめ。
数値を期待している変数に、数値として解釈できない文字列が渡された場合、SQL の実行に失敗してしまう。Oracle の場合は エラー: ORA-01722 が発生する。
どんなリクエストでもバリデーションは行おう。
言い訳させてもらうと、使っていたフレームワークが検索のときはデフォルトではバリデーションしないようになっていたので。それにならって作っていたので。
...不注意でした。