Один из вариантов может быть таким (см. Комментарии в коде):
SQL> with test (col) as
2 (select '{ABCDE,12345}{47,CE}' from dual),
3 temp as
4 -- remove leading and trailing brackets
5 -- replace "middle" brackets with semi-colon (a new separator)
6 (select replace(substr(col, 2, length(col) - 2), '}{', ';') val
7 from test
8 )
9 select regexp_substr(val, '[^;]+', 1, level) result
10 from temp
11 connect by level <= regexp_count(val, ';') + 1;
RESULT
--------------------------------------------------------------------
ABCDE,12345
47,CE
SQL>
Ах, да - отдельные столбцы : тогда substr
может помочь:
SQL> with test (col) as
2 (select '{ABCDE,12345}{47,CE}' from dual)
3 select substr(col, 2, instr(col, '}{') - 2) val1,
4 substr(substr(col, instr(col, '}{') + 2),
5 1,
6 length(substr(col, instr(col, '}{') + 2)) - 1
7 ) val2
8 from test;
VAL1 VAL2
----------- -----
ABCDE,12345 47,CE
SQL>