Si vos valeurs délimitées sont toujours alphanumériques entre les virgules, vous pouvez essayer :
SELECT REGEXP_SUBSTR( <delimied_string>, '[[:alnum:]]{0,},', 1, 7 )
FROM dual;
Pour obtenir la septième valeur (y compris la virgule finale). S'il est vide, vous obtenez simplement la virgule finale (que vous pouvez facilement supprimer).
Évidemment, si vous voulez une valeur autre que la septième, changez la valeur du quatrième paramètre en la nième occurrence que vous voulez, par exemple
SELECT REGEXP_SUBSTR( <delimied_string>, '[[:alnum:]]{0,},', 1, <nth occurance> )
FROM dual;
EDIT :Comme j'adore REGEX, voici une solution qui supprime également la virgule de fin
SELECT REPLACE(
REGEXP_SUBSTR(<delimied_string>, '[[:alnum:]]{0,},', 1, <nth>),
','
)
FROM dual;
j'espère que ça aide