Использование regexp_substr

недочеловек
Дата: 20.03.2011 15:23:47
Всем прива. Возникла такая проблема.

Запрос возвращает результат в виде одной строки,например, "первый-второй". Необходимо, что бы вместо этого, результат выводил две строки, т.е. первый
второй.
Поискав по форуму, наткнулся на такой пример
select rownum
      ,  regexp_substr (
            'TO-KEN1 -> TOKE-N2 -> TO-KE-N3 -> TO--KE--N4'
          , 'TO-*K-*E-*N\d{1}'
          , 1, rownum
        ) token
from DUAL
connect by level <= 4;

Решил его опробывать, но мне выдается ошибка: Неверно имя столбца.
Использую на Oracle9i Enterprise Edition Release 9.0.1.1.1 - Production
Как ее ичсправить?
недочеловек
Дата: 20.03.2011 15:25:19
Пример нашел здесь:
http://www.sql.ru/forum/actualthread.aspx?tid=549658
pravednik
Дата: 20.03.2011 15:39:58
недочеловек,

в девятке нет regexp_*
-2-
Дата: 20.03.2011 15:40:27
недочеловек
Использую на Oracle9i Enterprise Edition Release 9.0.1.1.1 - Production
Как ее ичсправить?
Проапгредить до 11g
dbms_photoshop
Дата: 20.03.2011 16:37:20
недочеловек
Как ее ичсправить?
Не использоть regexp там где он не нужен по причине его тормознутости.
select substr(s,
              instr(' -> ' || s, ' -> ', 1, level),
              instr(s || ' -> ', ' -> ', 1, level) -
              instr(' -> ' || s, ' -> ', 1, level))
  from (select 'TO-KEN1 -> TOKE-N2 -> TO-KE-N3 -> TO--KE--N4' s from dual) t
connect by level <= 1 + (length(s) - length(replace(s, ' -> '))) / length(' -> ');
dbms_photoshop
Дата: 20.03.2011 16:42:03
недочеловек
Как ее ичсправить?
+ читать топик до конца. Хотя бы тот, на который ты дал ссылку.
+ если более одной строки, то использовать одно из: Результат CONNECT BY LEVEL
недочеловек
Дата: 24.03.2011 00:42:50
Всем спасиб:)