programing

\n,\r 및 \t를 공백으로 대체할 Oracle Regexp

bestprogram 2023. 7. 16. 13:46

\n,\r 및 \t를 공백으로 대체할 Oracle Regexp

새 줄(NL) 문자(및 다른 문자도 포함)가 포함된 테이블에서 열을 선택하려고 합니다.\n,\r,\t. REGEXP를 사용하여 데이터를 선택하고 (이 세 개의) 문자만 공백 " " "으로 대체하고 싶습니다.

정규식이 필요 없습니다.이것은 ASCII 코드와 지루하고 오래된 번역기()로 쉽게 할 수 있습니다.

select translate(your_column, chr(10)||chr(11)||chr(13), '    ')
from your_table;

새 줄, 탭 및 캐리지 리턴을 공백으로 대체합니다.


TRANSLATE()는 정규식에 해당하는 것보다 훨씬 더 효율적입니다.그러나 이 방법을 사용하기로 결정한 경우 정규식에서 ASCII 코드를 참조할 수 있습니다.그래서 이 문장은 위의 정규식 버전입니다.

select regexp_replace(your_column,  '([\x0A|\x0B|`\x0D])', ' ')
from your_table;

수정은 기본 10이 아닌 16진수로 ASCII 코드를 참조하는 것입니다.

select translate(your_column, chr(10)||chr(11)||chr(13), ' ') from your_table;

청소를 위해서는 매개변수로서 비선택적인 가치를 제공하는 것이 필수적입니다...(기본적으로 1개의 매개 변수가 null이면 함수가 null을 반환합니다. 교체-수정과 같은 예외는 거의 없습니다.)

select translate(your_column, ' '||chr(10)||chr(11)||chr(13), ' ') from your_table;

이 예제에서는 매개 변수 3의 Null-Value를 방지하기 위해 '->' 변환을 더미 값으로 사용합니다.

언급URL : https://stackoverflow.com/questions/16407135/oracle-regexp-to-replace-n-r-and-t-with-space