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.