Oracle
 sql >> Base de données >  >> RDS >> Oracle

Utilisation de REGEXP_SUBSTR avec le qualificateur de chaînes

Le problème avec votre requête est que si vous utilisez [^PLE] il correspondrait à tous les caractères autres que P ou L ou E. Vous recherchez une occurrence de PLE consécutivement. Alors, utilisez

select REGEXP_SUBSTR(colname,'(.+)PLE',1,1,null,1) 
from tablename

Cela renvoie la sous-chaîne jusqu'à la dernière occurrence de PLE dans la chaîne.

Si la chaîne contient plusieurs instances de PLE et que seule la sous-chaîne jusqu'à la première occurrence doit être extraite, utilisez

select REGEXP_SUBSTR(colname,'(.+?)PLE',1,1,null,1) 
from tablename