[ORACLE] 오라클 LENGTH, LENGTHB 차이점 한글
- 데이터베이스/Oracle
- 2020. 5. 27.
LENGTH, LENGTHB 차이점
오라클에서 문자열에 대해 길이를 가져오는 함수중에 LENGTH, LENGTHB 가 대표적으로 있습니다.
legnth 와 lenthb의 차이점을 알아보겠습니다.
LENGTH(char) : 문자열 길이 반환하는 함수(공백포함)
LENGTH는 순수한 문자열의 길이를 반환합니다.
LENGTHB(char) : 문자열의 byte 반환하는 함수(공백포함)
LENGTHB는 byte단위로 반환해주기 떄문에 한글이 포함되어있는 byte를 반환합니다
※한글 바이트의 경우 DB 캐릭터셋의 방식에 따라 바이트의 수가 달라집니다.
사용하고 있는 DB의 캐릭터셋을 확인하는 방법은 아래쪽에 설명을 따로 하겠습니다.
LENGTH, LENGTHB 예제
WITH TEST_TB AS (
select '가나다라마' as a
,'abcd' as b
,'123' as c
from dual
)
select length(a), lengthb(a), length(b), lengthb(b), length(c), lengthb(c) FROM TEST_TB;
LENGTH(A) 는 순수한 문자열의 길이인 5가 반환되었습니다.
LENGTHB(A) 는 한글문자열이기 떄문에 길이가 10이 반환되었습니다.(글쓴이의 DB 케릭터셋은 한글 2byte)
LENGTH(B) 는 순수한 문자열의 길이인 4가 반환되었습니다.
LENGTHB(B) 는 한글이 아니여서 문자열의 길이인 4가 반환되었습니다.
LENGTH(C) 는 순수한 문자열의 길이인 3가 반환되었습니다.
LENGTHB(C) 는 한글이 아니여서 문자열의 길이인 3가 반환되었습니다.
DB 케릭터셋 확인방법
select * from nls_database_parameters where parameter = 'NLS_CHARACTERSET';
KO16KSC5601
완성형 한글입니다. 가장 많이 사용됩니다.
2,350자의 한글과 4,888자의 한자, 영문, 기호 및 히라가나,가타카나를 표현합니다.(한글 바이트 : 2btye)
KO16MSWIN949
조합형 한글입니다. 완성형을 포함하여 11,172자의 한글을 표현합니다.(한글 바이트 : 2byte)
AL32UTF8
유니코드의 CES중의 한 부분입니다. 11,172자의 한글을 표현합니다.(한글 바이트: 3byte)
'데이터베이스 > Oracle' 카테고리의 다른 글
[ORACLE] 오라클 INSTR 문자 위치 찾기 및 예제 (0) | 2020.06.03 |
---|---|
[ORACLE] 오라클 CASE WHEN THEN 조건문 사용법 (0) | 2020.05.28 |
[ORACLE] 오라클 SYSDATE 사용법(어제날짜,한달전,1년전) (0) | 2020.05.26 |
[ORACLE] 오라클 SUBSTR 문자열 자르기 사용법 (0) | 2020.05.21 |
[ORACLE]오라클 ORA-01722: 수치가 부적합합니다. 해결완료 (0) | 2020.05.20 |