У меня следующий запрос SQL (Oracle 18 c):
SELECT
--FIRST
translate(
' sOmE tEsT
eNdOfLiNe',
chr(10)||chr(11)||chr(13), 'replText'
) "Result1",
--SECOND
regexp_replace(
' sOmE tEsT
eNdOfLiNe',
'[\x0A|\x0B|`\x0D]', 'replText'
) "Result2",
--THIRD
regexp_replace(
' sOmE tEsT
eNdOfLiNe',
'[\r\n\t]', 'replText', 1, 0
) "Result3"
FROM dual
Я хотел бы заменить все вкладки, возврат каретки и индикаторы новой строки новой строкой, но похоже, что регулярное выражение заменить не работает (возвращает исходный текст). Я действительно сожалею о форматировании, но мне нужно обработать текст в точном формате, как указано выше, с \r \n \t
смешанными символами.
Вот скрипка: https://dbfiddle.uk/?rdbms=oracle_18&fiddle=63834f9bcab93136635366f18c375b13
I я учусь Oracle прямо сейчас и не понимаю, почему второе и третье решение возвращает исходный текст. Первое решение, похоже, работает, но я бы хотел добиться того же эффекта в решениях SECOND
и THIRD
. Что я пропустил?