Entfernen Sie die Polsterung, die durch Legacy DB2 -Datenbanken zu Abfrageergebnissen hinzugefügt wurde

StackOverflow https://stackoverflow.com/questions/3880552

  •  28-09-2019
  •  | 
  •  

Frage

Ich habe das folgende Setup.

'Apps/Reports' <---------> 'DB2 Connect' <------------> 'Legacy DB2 on AS400'
               `Hibernate`               `native calls`

Wenn Daten von der Anwendung abgerufen werden, wird sie mit zusätzlichen Räumen gepolstert, wenn die Länge geringer ist als die Spaltenlänge. Bemerkenswerterweise beim Ausführen einer Abfrage, wenn die WHERE Der Ursache Parameter ist nicht gepolstert. Es wird automatisch mit zusätzlichen Räumen gepolstert, sodass die Abfrage dieselben Datensätze für einen gepolsterten und nicht gepolsterten Parameter abrufen.

Gibt es einen Weg (vorzugsweise auf IBM DB2 Connect- oder Verbindungszeichenfolge Parameter), um zusätzliche Weißespaces von einem Ergebnisetet zu entfernen?

War es hilfreich?

Lösung

Sind die Spalten in den Iserien als char () definiert? Ich gehe davon aus, denn so funktioniert char () - es ist eine feste Feldlänge, keine variable Feldlänge (dafür ist Varchar da).

Andere Tipps

Sie können einen Hibernate -UserType implementieren, der die Zeichenfolgen automatisch schneiden. Es gibt gute Exmaples an

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

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top