试试这个:
with t(d) as ( select '<efwewfsdf/><asdf><qwe><rej:aaa ns2=rnsjvnsvjrlntjnbsnbltdbk">64-0203-0875/4</rej:aaa><rej:bbb ns2=bmtbrbpnrtusrnbdbd k">06396</rej:bbb><rej:ccc ns2=vmkfbkmbkfmgkmfgkbgfk">4567650</rej:ccc><rej:ddd ns2=zxczxczczxczxczxk">402341198</rej:ddd><rej:eee ns2=asdasdasdazxck">723112</rej:eee><rej:eee ns2=adasdasdawawqweqwek">342253</rej:eee><rej:eee ns2=bgbgfnnhnhnhnhnhnk">656345</rej:eee><rej:fff ns2=ewretyrtyghnk">352</rej:fff><rej:ggg ns2="vzxczdvdbdfgs">asd.Gdsa</rej:ggg><rej:hhh ns2="zcsasdqwfwgerbyn">W1_22</rej:hhh></qwe></asdf>' from dual ), t1(d) as (select SUBSTr(d, REGEXP_INSTR(d, '<[A-Za-z]{3}:', 1, level), REGEXP_INSTR(d, '</rej:[A-Za-z]{3}>', 1, level) - REGEXP_INSTR(d, '<[A-Za-z]{3}:', 1, level)) from tconnect by rownum < LENGTH(d) - LENGTH(REGEXP_REPLACe(d, ':[A-Za-z]{3}>', '')))select REGEXP_REPLACE(d, '^<rej:.*">', '') ff from t1FF--------------64-0203-0875/4063964567650402341198723112342253656345352asd.GdsaW1_22


