使用 Oracle 的字符串的子字符串(SUBSTRING 或 REGEXP_SUBSTR)

Substring of a string using Oracle (SUBSTRING or REGEXP_SUBSTR)

您好,我正在尝试在 oracle 中获取以下两个字符串的子字符串。如果模式匹配以 S9C 开头并且具有下一个数字

,我想要结果

例如:对于以下两个输入,我需要像

这样的输出

输入:

 1.CABLE : THERMINAL 3X2X0.25MM FPCP PLUS UNITRONIC S9C000019651  
 2.Motor Protection Relay EMR-3MPO-2S9CB1-1 (was IQ1000II / MP 3000)
 3.GREASE : BEM 41-132 3KG CARTRIDGE KLUBERPLEX S9C00019171 (Order by KG's required)

输出:

1.S9C000019651
2.Null
3.S9C00019171

你可以试试下面的REGEX -

WITH DATA AS (SELECT 'CABLE : THERMINAL 3X2X0.25MM FPCP PLUS UNITRONIC S9C000019651' STR FROM DUAL
              UNION ALL
              SELECT 'Motor Protection Relay EMR-3MPO-2S9CB1-1 (was IQ1000II / MP 3000)' FROM DUAL
              UNION ALL
              SELECT 'GREASE : BEM 41-132 3KG CARTRIDGE KLUBERPLEX S9C00019171 (Order by KG''s required)' FROM DUAL)
SELECT REGEXP_SUBSTR(STR, 'S9C\d{7,}')
  FROM DATA;

Demo.