Regina Oswald: DB2-Datenbank und ASP: Nicht-Case-Sensitive Suche???

Hallo,

wir wollen in unserer DB2-Datenbank mit ASP über mehrer Felder nach einem bestimmten String suchen und zwar
ohne daß Groß-Kleinschreibung berücksichtigt sein soll.

Bei der Access-Datenbank hat das gut funktioniert mit einem normalen SQL-Statement.

die DB2 sucht aber Case-sensitive. Laut DB2-Handbuch kann man Ihr das abgewöhnen, indem man UCASE(Spaltennamen)
oder TRANSLATE(Spaltennamen) schreibt. Das bringt aber eine Fehlermeldung.

Weiß jemand, wie die richtige Schreibweise heißen muß?

  1. Hallo,

    wir wollen in unserer DB2-Datenbank mit ASP über mehrer Felder nach einem bestimmten String suchen und zwar
    ohne daß Groß-Kleinschreibung berücksichtigt sein soll.

    Bei der Access-Datenbank hat das gut funktioniert mit einem normalen SQL-Statement.

    die DB2 sucht aber Case-sensitive. Laut DB2-Handbuch kann man Ihr das abgewöhnen, indem man UCASE(Spaltennamen)
    oder TRANSLATE(Spaltennamen) schreibt. Das bringt aber eine Fehlermeldung.

    Weiß jemand, wie die richtige Schreibweise heißen muß?

    Also inzwischen haben wir den Trick gefunden:

    Man muß den Suchstring per VB oder JavaScript in Großbuchstaben konvertieren und dann den Spaltennamen mit Translate(Spaltennamen) angeben im SQL-String.
    Dann findet man den Suchstring unabhängig von Groß- und Kleinbuchstaben. Verwendet man Tanslate(Spaltennamen) und einen kleingeschriebenen Suchstring, findet die DB2 gar nichts mehr.

    Wenn jemand eine elegantere Lösung kennt, dann interessiert mich das aber immer noch brennend!

    Gruß, Regina

    1. Also inzwischen haben wir den Trick gefunden:
      Man muß den Suchstring per VB oder JavaScript in Großbuchstaben konvertieren und dann den Spaltennamen mit Translate(Spaltennamen) angeben im SQL-String.
      Dann findet man den Suchstring unabhängig von Groß- und Kleinbuchstaben. Verwendet man Tanslate(Spaltennamen) und einen kleingeschriebenen Suchstring, findet die DB2 gar nichts mehr.

      Wenn jemand eine elegantere Lösung kennt, dann interessiert mich das aber immer noch brennend!

      translate auf *beide* Terme anwenden?

      also:
         ... WHERE translate (spaltenname) = translate (suchstring)

      dann brauchst Du keine String-Vorbehandlung.