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
Post a Comment