Если есть несколько столбцов - тогда это тоже работает -
select
REGEXP_SUBSTR (jango,'^[^#]*') as f1,
REGEXP_SUBSTR(REGEXP_REPLACE(jango,'^([^#]*#){1}', ''),'^[^#]*') as f2,
REGEXP_REPLACE(jango,'^([^#]*#){2}', '') as f3
from
(
Select decode(level,
1, 'foo#koo#joo',
2, 'bar#loo#too' ,
3, 'more stuff#doo#dingo') as jango
from dual connect by level <= 20
)
Вот как это работает - внутренний запрос такой же, как и выше. Я добавил несколько столбцов с помощью # - нужно позаботиться о том, чтобы это не было частью семейства regex, иначе нам нужно его избежать.
Select decode(level,
1, 'foo#koo#joo',
2, 'bar#loo#too' ,
3, 'more stuff#doo#dingo') as jango
from dual connect by level <= 20
Дает следующее -
Jango
-------------------
foo#koo#joo
bar#loo#too
more stuff#doo#dingo
Теперь следующий фрагмент выбирает из выходного столбца - 'jango', что-нибудь до #
REGEXP_SUBSTR (jango,'^[^#]*') as f1,
O/p --> foo
для второго столбца мы удаляем содержимое 1-го столбца, за которым следует #
REGEXP_REPLACE(jango,'^([^#]*#){1}', '')
we get --> koo#joo
Теперь 1-й шаг - получить первое поле.
для дополнительных полей {1} можно увеличить.