[Oracle] CHR(13) vs CHR(10)

CHR(13)CHR(10)은 각각 다른 문자 제어 코드인데요, 두 문자에 대한 차이를 알아보도록 하겠습니다.

CHR(13)CHR(10)은 각각 어떤 역할일까요?

먼저 간단히 설명하자면

  • CHR(13)는 캐리지 리턴(Carriage Return)이라고 불리는데, 이건 줄의 시작 지점으로 커서를 이동시켜줘요. 예전 타자기의 캐리지 리턴에서 유래한 거라 좀 복고적인 느낌도 나지요.
  • CHR(10)은 라인 피드(Line Feed)라고 하는데, 그냥 줄 바꿈을 의미해요. 다음 줄로 이동하는 역할을 한다고 보면 됩니다.

쉽게 말해서 CHR(13)은 커서를 '다시 앞으로', CHR(10)은 '아래로 내려주는' 기능을 한다고 생각하면 이해하기 쉬워요.

운영체제별 차이점: 윈도우와 유닉스

재미있게도, 운영체제마다 줄바꿈 처리 방식이 다르기 때문에 CHR(13)CHR(10)의 사용 방식이 달라요. 대표적으로,

  • 윈도우: 윈도우에서는 줄바꿈을 할 때 CHR(13) || CHR(10)을 함께 써요. 캐리지 리턴과 라인 피드가 한 세트처럼 붙어야 줄이 바뀌거든요.
  • 유닉스/리눅스: 유닉스 계열 운영체제는 줄바꿈에 CHR(10)만 사용해요. 좀 더 단순하게 처리하는 방식이죠. 그래서 윈도우에서 만든 파일을 유닉스에서 열면 줄바꿈이 잘 안 맞는 경우가 생기기도 해요.

운영체제마다 이렇게 차이가 있다 보니 파일을 서로 다른 환경에서 열 때 데이터가 깨지거나 포맷이 틀어질 때가 있죠. 데이터베이스에서도 이런 줄바꿈 문제는 종종 호환성 문제로 나타나곤 합니다.

CHR(13)CHR(10)을 활용하는 방법

이제 오라클에서 CHR(13)CHR(10)을 어떻게 활용할 수 있는지 예를 들어볼게요. 텍스트 데이터에서 줄바꿈을 추가하거나 포맷을 조정할 때 이 제어 코드를 사용하면 가독성을 높일 수 있답니다.

입력 예시를 살펴보겠습니다.

SELECT 'First Line' || CHR(13) || CHR(10) || 'Second Line' AS formatted_text FROM dual;

FORMATTED_TEXT
----------------------------------------------
First Line
Second Line

SQLPLUS를 기준으로, 캐리지 리턴만 입력하면 마지막 문장만 보입니다.

SELECT 'First Line' || CHR(13) || 'Second Line' AS formatted_text FROM dual;

FORMATTED_TEXT
--------------------------------------------
Second Line

chr(10)만 입력하더라도 환경에 따라 눈에는 똑같이 보여요.

SELECT 'First Line' || CHR(10) || 'Second Line' AS formatted_text FROM dual;

FORMATTED_TEXT
--------------------------------------------
First Line
Second Line

이 예제에서는 CHR(13) || CHR(10)을 사용해 두 줄을 나눠줍니다. 윈도우 시스템에 맞춰줄 때 주로 이렇게 쓰고요. 만약 유닉스 환경을 고려한다면 CHR(10)만 사용하는 게 더 깔끔할 수도 있어요.

이전최근
댓글 쓰기
가져가실 때, 출처 표시 부탁드려요! 감사합니다. 💗