Dabei sollte die Groß- und Kleinschreibung nicht von Bedeutung sein.
Doch wie erreicht man dies?
Komplizierter wird dies noch, wenn man die deutschen Sonderzeichen beachtet.
Was passiert mit eine "ß" ? Wie wird es umgesetzt?
Die Antwort ist folgende.
Sowohl die Daten in der Datenbank, als auch die Java-Strings müssen mit
toLower() auf lower-case umgestellt werden.
Im folgenden kommt ein Real-World-Beispiel, wie es oft in unseren Programmen auftaucht. Wenn man ein "_" als searchtTerm übergibt gibt es keine Einschränkung.
Man beachte, das im DB2 mit java die substr()-funktion aufgerufen werden muss, sonst klappt das nicht.
select distinct(BERATERNAME) as beratername
from ALMAUSR.RSB_RUECK
where lower(BERATERNAME) like :searchTerm or ('_' = substr(:searchTerm, 1, 1))
In Java erfolgt, das toLower wie folgt.
String searchTerm = "Außendienst";
searchTerm = searchTerm.toLowerCase(Locale.GERMANY);
searchTerm = searchTerm + "%";
Hi Martin,
AntwortenLöschenthat's great! Thank you so much.
So kann man übrigens einen SQL-Parameter im select setzen:
select cast(:myTinyInt as int) from ...
Der Parameter myTinyInt muss gecastet werden, da DB2 bei einem Prepared Statement sonst nicht weiß, von welchem Typ der Parameter ist.