Salah satu cara untuk melakukannya adalah dengan REGEXP_REPLACE. Anda perlu mendefinisikan seluruh string sebagai pola regex dan kemudian hanya menggunakan elemen yang Anda inginkan sebagai replace string
. Dalam contoh ini ColorID adalah pola ketiga di seluruh string
SELECT REGEXP_REPLACE('product=1627;color=45;size=7'
, '(.*)(color\=)([^;]+);?(.*)'
, '\3') "colorID"
FROM DUAL;
Mungkin saja ada solusi regex yang kurang kikuk, tetapi yang ini pasti berfungsi. Inilah SQL Fiddle.