Oracle Dump() 함수를 통해 해당데이터의 타입 및 CharacterSet을 확인할 수 있다.
(정확하게 Metadata 를 제공한다.)
SELECT DUMP('ABC', 1016) FROM DUAL; |
Typ=96 Len=3 CharacterSet=AL32UTF8: 41,42,43
Typ=96 Len=3 CharacterSet=KO16KSC5601: 41,42,43
Typ=96 Len=3 CharacterSet=KO16KSC5601: 65,66,67 (1010 으로 했을때 10진수로 표현)
다국어 지원에 프로젝트에서 정확하게 CharacterSet 이 확인시유용함!
The argument return_fmt
specifies the format of the return value and can have any of the following values:
8 returns result in octal notation.
10 returns result in decimal notation.
16 returns result in hexadecimal notation.
17 returns result as single characters.
아래는 추가내용(2008-10-24)
ORACLE [AL32UTF8] (UTF-8환경의 Oracle 은 한글을 3byte 로 표현함. varchar(8) 로 되어져 있는 column 에 '홍길동' 입력불가.) 큰이슈겠지요!!!
확인은 다음과 같이!!
예제1
|
SELECT dump('홍길동ABC',10) FROM dual;
|
ABC 값은 ASCII 값으로 데이터가 저장된 것으로 판단.
(ASCII A:65)
|
AL32UTF8
|
Typ=96 Len=12: 237,153,141,234,184,184,235,143,153,65,66,67
|
|
KO16KSC5601
|
Typ=96 Len=9: 200,171,177,230,181,191,65,66,67
|
|
예제2
|
SELECT dump('홍길동ABC',1016) FROM dual;
|
|
AL32UTF8
|
Typ=96 Len=12 CharacterSet=AL32UTF8: ed,99,8d,ea,b8,b8,eb,8f,99,41,42,43
|
|
KO16KSC5601
|
Typ=96 Len=9 CharacterSet=KO16KSC5601: c8,ab,b1,e6,b5,bf,41,42,43
|
'Computer Science > DB' 카테고리의 다른 글
C++ <vector>, Database 만들기 (0) | 2012.05.12 |
---|---|
ORACLE - 테이블 join 이 잘안돼... (0) | 2009.09.16 |
ORACLE - SYSDATE 로 시간구하기 (6) | 2009.05.20 |
ORACLE - 문자열 추출 (substr) (0) | 2009.03.03 |
ORACLE v$resource_limit (0) | 2008.09.30 |