Erkko, вам нужно использовать комбинацию SUBSTR
и REGEXP_INSTR
ИЛИ INSTR
.
Ваш запрос будет выглядеть так.(Без регулярных выражений)
SELECT SUBSTR('a|b|c|2|:x80|3|rr|',INSTR('a|b|c|2|:x80|3|rr|','|',1,3)+1) from dual;
Ваш запрос будет выглядеть следующим образом.(С помощью Regex, который вы хотите использовать) SELECT SUBSTR('a|b|c|2|:x80|3|rr|',REGEXP_INSTR('a|b|c|2|:x80|3|rr|','\|',1,3)+1) from dual;
Объяснение:
Сначала вам нужно найти место строки, которую вы хотите, как вы упомянули.Таким образом, в вашем случае |
находится на 6-м месте, так что +1 будет вашей позицией для начала подстроки.
Во-вторых, от исходной строки, подстрока из этой позиции + 1 до неограниченной. (Где вашконец строки)
Пример:
https://dbfiddle.uk/?rdbms=oracle_11.2&fiddle=6fd782db95f575201eded084493232ee