Home > Mobile >  Oracle SQL How to extract a string on the first occurrence between two specific fixed strings of &qu
Oracle SQL How to extract a string on the first occurrence between two specific fixed strings of &qu

Time:12-13

I have data in an Oracle column in the below format:

Ch99// 4// Sub// 586915 16// jkc 12/12/22

And I need to extract the substring of "4" that will always be between the first two occurrences of "//".

So the output needed is:

4

I'm currently using ,regexp_substr(column, '//([^}] )//', 1,1,NULL,1) but it's returning everything after the first "//"

CodePudding user response:

I think the simplest thing is probably to use '//(.*?)//'. This matches any characters between // and //, but does it in a non-greedy way.

It is not clear why you are trying to use [^}] (matches one or more characters that are not a closing curly brace), since your question doesn't mention any requirements around curly braces.

A Fiddle of it working with your example:

SELECT regexp_substr(
 'Ch99// 4// Sub// 586915 16// jkc 12/12/22',
 '//(.*?)//', 
 1, 1, null, 1)
FROM dual

returns

4
  • Related