इसे करने का एक तरीका REGEXP_REPLACE है। आपको पूरी स्ट्रिंग को रेगेक्स पैटर्न के रूप में परिभाषित करने की आवश्यकता है और फिर केवल उस तत्व का उपयोग करें जिसे आप replace string
के रूप में चाहते हैं . इस उदाहरण में ColorID पूरे स्ट्रिंग में तीसरा पैटर्न है
SELECT REGEXP_REPLACE('product=1627;color=45;size=7'
, '(.*)(color\=)([^;]+);?(.*)'
, '\3') "colorID"
FROM DUAL;
यह संभव है कि कम क्लंकी रेगेक्स समाधान हो, लेकिन यह निश्चित रूप से काम करता है। यहां एक SQL Fiddle है।