Я пытаюсь получить указанную c часть текста с Oracle регулярным выражением. Если в тексте нет символа конца строки (chr(10)
), я получаю то, что хочу. Но если есть символ конца строки, он возвращает ноль. Вы можете увидеть примеры sql кодов ниже.
SELECT RegExp_SubStr('TEXT_BEGIN Line 1 Line 2 TEXT_END',
'TEXT_BEGIN(.+)TEXT_END', 1, 1, NULL, 1)
FROM dual;
возвращает Line 1 Line 2
с символом конца строки.
SELECT RegExp_SubStr('TEXT_BEGIN Line 1' || chr(10) || 'Line 2 TEXT_END',
'TEXT_BEGIN(.+)TEXT_END', 1, 1, NULL, 1)
FROM dual;
возвращает NULL
Это может быть решение для преобразования символов конца строки в тексте в специальный символ, такой как ## CHR10 ##
до SubStr
и затем после SubStr
. Но я хочу простое решение без взлома.