Anzeige

Oracle sql, string extrahieren


tplanitz

Erfahrenes Mitglied
#1
Hallo ,
ich suche eine elegante Lösung, die auch performant ist für das extrahieren eines Strings der zwischen zwei Hochkommas steht. Könnt Ihr helfen?
Meine simple Lösung:
SQL:
select 'la''hier''la'
    
     ,first_pos, first_pos+second_pos, substr('la''hier''la',first_pos+1,second_pos-1)
from
(

select substr('la''hier''la',instr('la''hier''la','''')+1),instr('la''hier''la','''')  first_pos
      --,substr('la,hier,la',instr('la,hier,la',',')+1),',')
      ,instr(substr('la''hier''la',instr('la''hier''la','''')+1),'''') second_pos
from dual
)
;
 
#2
Reguläre Ausdrücke sind dein Freund:
SQL:
REGEXP_SUBSTR('la''hier''la', '''([^'']+)''',1,1,'',1)
'''([^'']+)''' :Anführungszeichen gefolgt von allem was kein Anführungszeichen ist, gefolgt von einem Anführungszeichen. Der Mittelteil mit den Klammern extrahieren (Substring)
1,1 : BEginn am Anfang un nimm den ersten TReffer
'': Keine Paramter notwendig
1: Nimm den ersten Substring

Hier hast du noch eine gute Auflösung
https://regex101.com/r/u3MRIx/4
 
Anzeige