Jednym ze sposobów na to jest REGEXP_REPLACE. Musisz zdefiniować cały ciąg jako wzorzec regex, a następnie użyć tylko wybranego elementu jako replace string
. W tym przykładzie ColorID jest trzecim wzorem w całym łańcuchu
SELECT REGEXP_REPLACE('product=1627;color=45;size=7'
, '(.*)(color\=)([^;]+);?(.*)'
, '\3') "colorID"
FROM DUAL;
Możliwe, że będzie mniej niezgrabnych rozwiązań regex, ale to zdecydowanie działa. Oto skrzypce SQL.