Хорошо, ребята, вот решение, которое я нашел (все еще одна ошибка, см. В конце поста).Я использую два представления, чтобы наконец извлечь мои строки.Первый вид - это создание по запросу:
--- create intermediate table view with targeted pattern position
create or replace view Start_Position_Index as
with "post" as
(select id, text from "your_table" where id= 'xyz')
select id, instr(text,'#', 1, level) as position, text
from post
connect by level <= regexp_count(titre, '#');
, затем
--- create working table view with full references and blank position for each pattern match and string_lenght for each one
create or replace view _#_index as
select id, position as hashtag_pos, INSTR(text,' ', position) as blank_position, INSTR(text,' ', position) - position as string_length, text
from Start_Position_Index;
В конце вы сможете получить хештеги (в этом случае), которые искали втвоя строкаИтак, ошибки: - если шаблон, который вы ищете, находится в конце вашей строки, он получит нулевое значение, потому что не будет пробела (как в конце строки).- это не очень хорошо оптимизировано, потому что здесь я работаю с представлениями, а не с таблицами.Я думаю, что использование таблиц будет быстрее.
Но я почти уверен, что есть много вещей, чтобы оптимизировать этот код ... любая идея?Задача состояла в том, чтобы рекурсивно извлечь конкретный шаблон из строк без использования дорогостоящего регулярного выражения и без использования pl / sql.Что вы думаете об этом?