Oracle
 sql >> Datenbank >  >> RDS >> Oracle

So erhalten Sie einen Teil der Zeichenfolge, die mit einem regulären Ausdruck in Oracle SQL übereinstimmt

Eine Möglichkeit dazu ist REGEXP_REPLACE. Sie müssen den gesamten String als Regex-Muster definieren und dann nur das gewünschte Element als replace string verwenden . In diesem Beispiel ist die ColorID das dritte Muster in der gesamten Zeichenfolge

SELECT REGEXP_REPLACE('product=1627;color=45;size=7'
                         , '(.*)(color\=)([^;]+);?(.*)'
                         , '\3') "colorID"  
FROM DUAL;  

Es ist möglich, dass es weniger klobige Regex-Lösungen gibt, aber diese funktioniert definitiv. Hier ist eine SQL-Fiddle.