0

たとえば、長さmyTableのフィールドmyFieldを持つテーブル (Oracle) があります。CHAR5

SQL devまたはその他のツールで直接以下のようなクエリを実行しようとすると

SELECT * FROM myTable WHERE myField = 'aa'

期待どおりにいくつかの結果が得られます((5に収まるように3つの末尾のスペースで埋められた)など'aa'のいくつかのdbで埋められた値と比較していることに注意してください.'aa '

問題: たとえば、JPA Hibernate を使用してそのようなクエリを実行しようとすると、比較する前に CHAR フィールドを使用しない限り、同じ結果が得られません (何もありません)。TRIM

SELECT * FROM myTable WHERE TRIM(myField) = 'aa'

また

次のようにパラメータをパディングします(ただし、これにはCHARの長さを事前に知る必要があります)

 FROM myTable WHERE TRIM(myField) = 'aa   '

質問:上記の 2 つしか選択肢はありませんか? 上記以外のオプションも大歓迎です。性能が良いのはどっち?ありがとう。

4

0 に答える 0