En måde at gøre det på er med REGEXP_REPLACE. Du skal definere hele strengen som et regex-mønster og derefter bruge det element, du vil have som replace string
. I dette eksempel er ColorID det tredje mønster i hele strengen
SELECT REGEXP_REPLACE('product=1627;color=45;size=7'
, '(.*)(color\=)([^;]+);?(.*)'
, '\3') "colorID"
FROM DUAL;
Det er muligt, at der kan være mindre klodsede regex-løsninger, men denne virker bestemt. Her er en SQL Fiddle.