1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| SQL> with var as (
2 select 'ERR01?ERR02' as code from dual
3 ),
4 var2 as (
5 select '?'||code||'?' as code from var
6 ),
7 explode as (
8 select trim( substr (code,
9 instr (code, '?', 1, level ) + 1,
10 instr (code, '?', 1, level+1)
11 - instr (code, '?', 1, level) -1 )
12 ) as token
13 from var2
14 connect by level <= length(code)-length(replace(code,'?',''))+1
15 )
16 select * from explode;
TOKEN
----------------------------------------------------
ERR01
ERR02
SQL> |
Partager