PL/SQL case insensitive replace

Hi

Hab ein kleines Problem mit meinem replace:
Hab ein CLOB. Sehr gross. Da drin ist, sagen wir mal „Oracle-HolzKopf“
versteckt, in allen möglichen Gross-Klein-Varianten.
Wie ersetze ich diesen String möglichst einfach (mit geringem
Performance-Verlust) ?
Momentan schleife ich durch den CLOB, speicher einen zwischenteil
in ein VARCHAR2 und benutz replace:
v_varchar2 := replace(v_varchar2, ‚Oracle-HolzKopf‘);

so toll, aber replace gibt es nich case insensitiv und ich
kann ja schlecht jede Möglichkeit angeben…
Kennt jemand ne bessere Lösung ?
Gruss
Kyle

Hi

Hab ein kleines Problem mit meinem replace:

(snip)

Momentan schleife ich durch den CLOB, speicher einen
zwischenteil
in ein VARCHAR2 und benutz replace:
v_varchar2 := replace(v_varchar2, ‚Oracle-HolzKopf‘);

so toll, aber replace gibt es nich case insensitiv und ich
kann ja schlecht jede Möglichkeit angeben…
Kennt jemand ne bessere Lösung ?
Gruss
Kyle

Hallo Kyle,

bin unsicher, ob ich Dich richtig verstehe, aber:
kannst Du nicht um das v_varchar2 die Funktion
UPPER() oder (LOWER) winden? Dann mußt Du doch nur
noch GROSSE oder kleine Oracle-Holzköpfe vergleichen.

hth,
Guido

Hallo Kyle,

bin unsicher, ob ich Dich richtig verstehe, aber:
kannst Du nicht um das v_varchar2 die Funktion
UPPER() oder (LOWER) winden? Dann mußt Du doch nur
noch GROSSE oder kleine Oracle-Holzköpfe vergleichen.

hth,
Guido

Hi Guido,
ja könnte ich machen, dann hätte ich auch alle entsprechenden
String gefunden und ersetzt. Nur ist der erste Parameter der
Quellstring, der bearbeitet und auch wieder zurückgegeben wird.
Soll heissen, wenn ich ein upper(v_varchar2) übergebe, bekomme
ich auch ein „upper(varchar2)“ zurück, also ALLES grossgeschrieben.
Bei instr() funktionierts, aber nich bei replace().
Thats my big prob :wink:

Gruss
kyle

Ok, hab ne Methode gefunden:
owa_pattern.change
Diese Funktion kann case insensitiv ersetzen, is aber performance-technisch langsamer. Reicht für meinen Zweck jedoch aus.
Grüssle an alle
Kyle