クエリの結果にレガシーDB2データベースによって追加されたパディングを削除する
-
28-09-2019 - |
質問
次のセットアップがあります。
'Apps/Reports' <---------> 'DB2 Connect' <------------> 'Legacy DB2 on AS400'
`Hibernate` `native calls`
アプリケーションによってデータが取得されると、長さが列の長さよりも少ない場合、追加のスペースがパッドで埋められます。クエリを実行するとき、 WHERE
原因パラメーターはパッドではなく、クエリがパッド付きおよび非パッドパラメーターに対して同じレコードを取得するように、追加のスペースで自動的にパッド入ります。
結果セットから余分なホワイトスペースを削除する方法(できればIBM DB2 ConnectまたはConnection Stringパラメーター)はありますか?
解決
Iseriesの列はchar()として定義されていますか?これは、char()の仕組みであるため、容易なフィールドの長さであり、変数フィールドの長さではありません(それがVarcharの目的です)。
他のヒント
文字列を自動的にトリミングするHibernate Usertypeを実装できます。良いエクスマープルがあります
https://forum.hibernate.org/viewtopic.php?t=928294
http://java.dzone.com/articles/annotating-custom-types
http://santescas.blogspot.de/2014/02/creando-un-usertype-de-hibernate-que-se.html
所属していません StackOverflow