The following should work in all current versions of ORACLE:
SELECT sample
,SUBSTR( TRIM(REPLACE(sample ,’,’ ,’ ‘))
,INSTR(TRIM(REPLACE(sample ,’,’ ,’ ‘))
,’ ’ ,-1) + 1) AS extracted
FROM
(SELECT ‘,Oracle10,’ AS sample FROM DUAL UNION ALL
SELECT ‘,Database,10g,Oracle10,’ AS sample FROM DUAL UNION ALL
SELECT ‘,10g,Oracle20,’ AS sample FROM DUAL UNION ALL
SELECT ‘,Data,Menu,OracleAA,’ AS sample FROM DUAL
)
SAMPLE EXTRACTED