oracle - Split string using pl/sql using connect level on null value -



oracle - Split string using pl/sql using connect level on null value -

i'm using next code in oracle pl/sql (version: oracle database 11g release 11.2.0.1.0)

select regexp_substr('a~b~c','[^~]+',1,level) output dual connect level <= length(regexp_replace('a~b~c','[^~]+')) + 1

which gives next results

row1: row2: b row3: c

that's perfect, should want give null value, ie:

select regexp_substr('~b~c','[^~]+',1,level) output dual connect level <= length(regexp_replace('~b~c','[^~]+')) + 1

i expected , wanted following:

row1: <null> row2: b row3: c

but got output:

row1: b row2: c row3: null

am doing pl/sql code wrong? how can create work right?

you can combine instr und substr achive desiered result:

select str, replace(substr(str, case level when 1 0 else instr( str, '~',1, level-1) end +1, 1 ), '~') ( select 'a~b~c~d~e' str dual) connect level <= length(regexp_replace(str,'[^~]+')) + 1 ;

string oracle plsql split stringtokenizer

Comments

Popular posts from this blog

web services - java.lang.NoClassDefFoundError: Could not initialize class net.sf.cglib.proxy.Enhancer -

Accessing MATLAB's unicode strings from C -

javascript - mongodb won't find my schema method in nested container -