0
にリストを渡すときに、私は次のクエリを持っている:無効な関係演算子Where句
SELECT *
FROM TABLE1 TD
WHERE COL1 like '%' ||?|| '%'
AND COL2 like '%' ||?|| '%'
AND ((:statusId) IS NULL) OR ((:statusId) IS NOT NULL AND STATUS_ID IN (:statusId)))
ORDER BY COL1 DESC;
StatusIdは、複数の値/単一の値またはnullを持つことができます。 Spring JDBCを使用して値1,2を渡すと、無効な関係演算子が取得されます。
それらを削除する必要があります、ev erywhere。それはおそらく同時にリストとスカラーになることはできません。 –
これは、1、2(カンマで区切られた2つの数字のリスト)を渡さないためです。 '1、2'のように一重引用符で囲まれた文字列を渡しています。それは同じことではなく、周りに道がありますが、自明なものではありません。この質問は、SOの "variable IN list"などを検索するために何千回も尋ねられています。 – mathguy
@mathguyリストを渡すことはできません。それが渡される文字列の場合、クエリはOPが期待する行を返しません。しかし、もし:statusIdが文字列なら、なぜこれがエラーを起こすべきですか? – miracle173