Oracle REPLACE() 함수가 캐리지 리턴 및 라인 피드를 처리하지 않습니다.
자리가 있습니다.varchar2(100)
때때로 캐리지 리턴 & 라인 레이블을 포함하는 열입니다.SQL 쿼리에서 해당 문자를 제거하고 싶습니다.다음을 사용합니다.
REPLACE( col_name, CHR(10) )
이는 아무런 영향을 미치지 않지만 'CHR(10)'을 보다 일반적인 '글자' 문자로 대체하면 REPLACE 기능이 다르게 작동한다는 것을 증명합니다.우리는 또한 발견했습니다.
REPLACE( col_name, CHR(10), '_' )
새 줄의 위치를 찾지만 밑줄을 대체하지 않고 줄 뒤에 삽입합니다.
Oracle8i에서 실행 중.업그레이드는 선택사항이 아닙니다.
또 다른 방법은 다음과 같습니다.
TRANSLATE (col_name, 'x'||CHR(10)||CHR(13), 'x')
'x'는 세 번째 매개 변수가 null이면 변환이 제대로 작동하지 않기 때문에 null로 변환하지 않을 문자입니다.
아! 케이드는 돈을 받고 있습니다.
TOD 인쇄물의 아티팩트\r\n
두 개의 자리 표시자 '거품' 문자로 표시되지만 단일 문자로 인쇄됩니다.\r
또한 두 자리 표시자로서.솔루션을 향한 첫 번째 단계는 다음을 사용하는 것입니다.
REPLACE( col_name, CHR(13) || CHR(10) )
하지만 조금 더 튼튼한 것을 선택했습니다.
REPLACE(REPLACE( col_name, CHR(10) ), CHR(13) )
어떤 순서로든 공격하는 캐릭터를 잡을 수 있습니다.케이드에게 많은 감사를 드립니다.
m.
당신의 새로운 라인이 확실합니까?CHR(13) + CHR(10)
그 경우, 당신은 결국CHR(13) + '_'
여전히 새로운 라인처럼 보일 수도 있는 것은?
해라REPLACE(col_name, CHR(13) + CHR(10), '')
데이터베이스의 데이터가 HTML 양식 TextArea 컨트롤에서 Posted인 경우 브라우저마다 다른 새 줄 문자를 사용합니다.
Firefox는 CHR(10)로만 줄을 구분
Internet Explorer(인터넷 익스플로러)에서 CHR(13) + CHR(10)로 줄 구분
Apple(OSX 이전 버전)은 CHR(13)만 있는 라인을 구분합니다.
따라서 다음과 같은 것이 필요할 수 있습니다.
set col_name = replace(replace(col_name, CHR(13), ''), CHR(10), '')
그냥 메모를 남기고 싶어서요.텍스트 4000 필드의 형식을 지정하는 데 문제가 있었고 보고서에서 텍스트가 임의로 랩(또는 랩이 아닌)되는 것처럼 보였습니다.위에 언급된 교체 chr(10)을 사용하여 열을 업데이트했을 때.내 보고서는 마침내 내가 원하는 대로 포맷되었습니다.많은 Thans!
새 라인 캐릭터가CRLF
그것은 그것을 의미합니다.CHR(13)
다음에CHR(10)
.네가 만약REPLACE(input, CHR(10), '_')
로 바뀌면CHR(13)
밑줄이 그립니다.부터CR
자체적으로 새 줄 문자만큼 잘 렌더링될 수 있습니다. 새 줄 뒤에 밑줄이 삽입된 것처럼 보이지만 실제로 새 줄의 절반만 교체되었습니다.
사용하다REPLACE(REPLACE(input, CHR(13)), CHR(10))
것을 CR
의 모래LF
의
언급URL : https://stackoverflow.com/questions/407027/oracle-replace-function-isnt-handling-carriage-returns-line-feeds
'IT' 카테고리의 다른 글
printf의 일부 텍스트를 녹색과 빨간색으로 표시 (0) | 2023.06.12 |
---|---|
VBA를 사용하여 Excel에서 용해/재형성? (0) | 2023.06.12 |
iOS 6의 레이블 정렬 - UI 텍스트 정렬 사용 안 함 (0) | 2023.06.12 |
NSDateFormatter 로케일 "기능"을 처리하는 가장 좋은 방법은 무엇입니까? (0) | 2023.06.12 |
데이터에 추가한 후 Vue에서 PK를 렌더링하지 않음 (0) | 2023.06.12 |