본문 바로가기
카테고리 없음

[Oracle] 특정문자 이후 엔터(개행) 처리하기 / REPLACE / CRLF / CHR(10), CHR(13)

by 성은2 2021. 7. 26.

데이터 예시

강의평가(지원)

출력하고 싶은 형태

강의평가

(지원) 

 

 

위와 같이 괄호'( )' 내용부터는 개행 처리하고싶을때

 

 

 

사용  함수 : REPLACE, CHR()

SELECT REPLACE('강의평가(지원)' , '(' , CHR(13)||CHR(10)||'(' ) AS DISABLED_NAME
//                                            ①                   ②                   ③                       

FROM DUAL;

 

 

 

해설 및 구문 설명

REPLACE (①, ②, ③) : ①데이터의 ②를 ③으로 치환하겠다.

=> '강의평가(지원)' 데이터의 '(''줄바꿈(' 로 치환하겠다.

(① 데이터에는 컬럼명이 오면 되겠습니다.)

 

 

 

SQL Developer툴을 사용했는데, 출력결과를 그냥 봤을땐 별다른 처리가 이루어지지 않아 보이지만,

더블 클릭하면 아래와 같이 개행처리가 적용됐음을 확인할 수 있다.

 

 

 

 

 

 

 

오라클에서 사용되는 CHR 함수

CHR(9) : 탭(Tab)문자

CHR(10) : 줄바꿈(LF : Line Feed)

CHR(13) : 행의 처음(CR : carriage return)


 

 

 

ASCII Table

 

CHR(13)과 CHR(10) 을 같이 사용하는 이유를 간단히 설명하면 Carriage Return(CR) 맨앞으로 이동 후 / Line Feed(LF) 일반적으로는 New Line, 즉 새로운 라인으로 이동 입니다.

다음 포스팅에 잘 설명 되어있어서 출처를 남깁니다.

 

 

프로그래밍 언어에서의 캐리지 리턴(CR)과 라인 피드(LF)

"과거 타자기를 제어하는 시절에는 작성하고 있는 문서를 한줄 내려서 작업 하기 위해 CR(커서를 맨앞으로 되돌리기)이후 LF(종이를 한칸 올리기)를 해야 했습니다.

즉 한 줄을 내리기 위해서는 CRLF(\r\n) 을 해야 했습니다. 아스키코드로는 13번과 10번입니다."

 

 

 

 

 

 

 

Orcale 에서 CRLF 실행 구문