일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 영어 유머
- 체스-TD
- MLBB
- 관광
- english study
- English Joke
- 심플한 게임
- 영어독해
- OGGMA
- oracle
- 영어유머
- 오라클
- 여행
- Mobile Legends
- 오큘러스
- 왕좌의게임
- java program
- Chess-TD
- 영어공부
- Python
- 이솝우화
- 임바 오토체스
- 게임기
- 가볼만한곳
- Imba Auto Chess
- 독해연습
- 골든게이트
- 게임
- 모바일레전드
- 롤
- Today
- Total
Almost-Native
오라클 DB에서 유니코드 UTF-8 코드값으로 한글 출력하기 본문
오라클 DB에서 유니코드 UTF-8 코드값으로 한글 출력하기
2020. 12. 12. 10:54유니코드는 "유니코드 컨소시엄"에서 글로벌하게 모든 글자에 부여한 코드값입니다.
이 안에는 당연히 한글도 들어있죠~
아래 출처 사이트로 가면 전체 한글 유니코드 리스트를 볼 수 있습니다.
위 표에서 보면 문자마다 UNICODE 값이 있고, UTF8 코드값이 있는 것을 볼 수 있습니다.
'가' 글자에 대한 UNICODE 값은 'AC00' 이고, UTF8 코드값은 '234, 176, 128' 입니다.
'각' 글자에 대한 UNICODE 값은 'AC01' 이고, UTF8 코드값은 '234, 176, 129' 입니다.
얘네들을 Oracle Database 내에서 출력하는 방법은 2가지가 있습니다.
1) UNICODE 값을 이용하는 방법
2) UTF-8 코드값을 이용하는 방법
근데, DB에서 유니코드 값으로 뭔가를 출력할려면, DB가 당연히 유니코드를 지원해야 합니다.
테스트하는 DB의 NLS_LANG 파라메타값이 ~.UTF8 또는 ~.AL32UTF8 처럼 되어 있어야 됩니다.^^
SQL> select sys_context('userenv', 'language') from dual;
로 확인해 볼 수 있습니다.
1) UNICODE 값을 이용하는 방법
유니코드값을 이용하는 경우에는 아주 쉽습니다. 오라클에서 제공하는 unistr() 함수를 사용하기만 하면 됩니다.
unistr() 함수에 인자로 유니코드값을 넣을때 앞에 역슬래시('\') 를 붙여줘야 합니다.
대소문자는 상관없습니다.
2) UTF-8 코드값을 이용하는 방법
UTF-8 코드값을 이용하는 경우는 좀 복잡합니다.
한방에 출력해주는 함수가 없어서 to_char(), to_number(), chr() 의 3개의 함수를 조합해야 합니다.
먼저, '234, 176, 128' 이 3개의 십진수값인데, 이걸 각각 16진수값으로 변환하기 위해 to_char(234, 'xx') 와 같이 호출합니다.
to_char() 함수 2번째 인자로 'xx' 포맷을 넣어주면 10진수를 16진수로 출력해줍니다.
여기에서 나온 3개의 16진수값을 모두 붙여서 하나로 만들어야 하는데, 이때 공백이 들어가 있어서 trim() 으로 제거해줘야 합니다.
이렇게 공백없이 하나로 합쳐진 16진수 값을 10진수값으로 다시 변환해줘야 합니다.
to_number() 함수를 사용하고, 두번째 인자로 'xxxxxxxx' 를 넣어주면 됩니다.
이렇게 나온 십진수 값을 chr() 함수에 넣어주면 드디어 한글 '가' 글자가 출력됩니다.
'Java 프로그램 개발, IT' 카테고리의 다른 글
오라클 impdp 작업시 에러 (ORA-39002, ORA-39070, ORA-39087) (0) | 2020.12.12 |
---|---|
오라클 Directory 생성/삭제/변경, 권한부여 (grant) (0) | 2020.12.12 |
Oracle 유니코드 지원, UTF-8, UTF-16, UCS-2 인코딩 차이, 캐릭터셋 (0) | 2020.12.11 |
오라클 16진수/10진수 변환 (hexa / decimal convert) (0) | 2020.12.11 |
리그오브레전드 Wild Rift 스마트폰 게임 못하게 막는 방법 (포트 차단) (2) | 2020.11.28 |