Stephan: ORACLE: replace oder owa_pattern

Hallo zusammen,

ich habe eine suchmaschine in einer oracle plsql webapplikation.

Nun möchte ich - wenn jemand aus der suchmaschine - in ein ergebnis klickt die suchbegriffe in der seite farbig hinterlegen, so ähnlich wie die funktion der google-toolbar(nur serverseitig).
Das ist eigentlich ja auch kein Problem:

html_text := replace(html_text, suchbegriff, '<b style="background-color:red;">'||suchbegriff||'</b>');

Nachdem ich nicht weiss ob der Suchbegriff im Text groß, oder klein, oder soNstWiE geschrieben ist, brauche ich eine Funktion die quasi "in key sensitive" sucht und ersetzt.

Das geht auch mit owa_pattern:

owa_pattern.change(html_text, '('||suchbegriff||')', '<b class="highlight">\1</b>', 'ig');

Nur leider wirds dann schweinelangsam.
Eigentlich brauche ich ja nicht die ganze macht von regulären Ausdrücken für diese simple highlight funktion, mir würde eine simple "key insensitive" replace funktion reichen.

Gibt es sowas in Oracle, oder habt Ihr einen anderen Lösungsansatz?

Danke
Stephan

Ps: Oracle 9i auf ner HP Superdome

  1. yo,

    ich bin mir nicht ganz sicher, ob ich dich richtig verstanden habe. aber grundsätzlich kannst du die funktionen upper oder lower verwenden, sowohl bei dem suchbegriff als auch bei der spalte. dann bist du unabhängig von der gross und kleinschreibung. was die performance betrifft st zu beachten, dass er bei funktionen nicht mehr so einfach über einen index gehen kann, es sei den, du hast dir einen fukntions-basierten index erstellt.

    Ilja