2012-10-04 22 views
5

Ja próbuje na wielkie ciąg zastępczy z mojej wypowiedzi reg bez powodzenia:Oracle REGEXP_REPLACE wielka wymiana ciąg

SELECT regexp_replace('src=/i/uie_v2/js','(/uie_v2/)',upper('\1')) from dual 

powraca 'src=/i/uie_v2/js'

Rozumiem, że górne nie mogą być wykorzystane .. tylko pokazano jako przykład . Wszelkie pomysły, jak to osiągnąć?

Odpowiedz

4

AFAIK, nie można tego zrobić bezpośrednio, ale można wziąć ciąg siebie i odbudować go:

SELECT regexp_replace('src=/i/uie_v2/js','(.*)(/uie_v2/)(.*)', '\1') || 
    upper(regexp_substr('src=/i/uie_v2/js','(/uie_v2/)')) || 
    regexp_replace('src=/i/uie_v2/js','(.*)(/uie_v2/)(.*)', '\3') 
from dual 

wpadłem na pomysł z OTN forums thread on REGEXP.