Как извлечь строку между двумя символами вертикальной черты?

В DB2 v10 у меня есть таблица со следующими значениями столбцов:

POST:https:Booking:":getDetails"|26c4ebad-f727-4e59-bcff-3232230ad155|6f9bffbc:85

Мне нужно извлечь строку между двумя '|' символов в качестве нового столбца в операторе select. DB2, похоже, не имеет встроенной поддержки регулярных выражений. На данный момент я обнаружил, что функции, подобные регулярным выражениям, можно зарегистрировать в DB2 с помощью внешних библиотек, но статья довольно старая, и что-то могло измениться. Каков самый простой способ сделать это? Каким будет метод с наилучшей производительностью? Если мне нужно добавить внешние библиотеки, есть ли хорошая документация, показывающая, как добавлять и использовать их с уже скомпилированными библиотеками, если это возможно?

Примечание. DB2 работает на компьютере Linux с процессором Intel.


person user3155036    schedule 29.04.2016    source источник
comment
Если это всегда два конвейера, вам действительно не нужны регулярные выражения, не так ли?   -  person mustaccio    schedule 29.04.2016
comment
echo POST:https:Booking::getDetails|26c4ebad-f727-4e59-bcff-3232230ad155|6f9bffbc:85 | sed 's/.*|(.*)|.*/\1/'   -  person sjsam    schedule 02.05.2016
comment
Как сказал @mustaccio, вы, вероятно, можете использовать комбинацию SUBSTR и LOCATE.   -  person Stavr00    schedule 02.05.2016


Ответы (1)


Вы можете получить помощь от здесь. Просто нужно указать имя строки и символ вертикальной черты и настроить запрос в соответствии с вашими потребностями.

person bp89    schedule 02.05.2016