IT

Oracle REPLACE() 함수가 캐리지 리턴 및 라인 피드를 처리하지 않습니다.

itgroup 2023. 6. 12. 21:18
반응형

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

반응형