UTF-8 에서 한글 문제 0 1 1,650

by 비너스 [Oracle 기초] utf-8 [2013.07.11 19:57:35]


안녕하세요. 어려운 상황이 발생하여 조언 듣고자 합니다.

윈도우 2012 서버에서 64비트 오라클을 설치하고 UTF-8 세트로 데이터베이스를 구성하였습니다.

업무는 은행사이트에서 텍스트파일로 된 납부 내역을 오라클로 올려서 문자열을 잘라 개인별 납부내역을 확인하는 일입니다.

그런데, 문제는 성명 = substring(컬럼명, 7,50)은 잘 잘라지고, 납부일자= substring(컬럼명, 58, 8)를 잘라서 가져올때
 이상하게 작동합니다.

예컨대,

58번째 부터가 날짜 임.
543245김빛나라 20130709000070000
543245홍길동  20130709000070000
543245한무        20130709000070000
...

이런 내용으로 구성되어 있는데, 한글이름 문자열50칸으로 지정되어 있고, 곧바로 납부일자가  붙습니다.

이름이 3자인 경우는 정상적으로 20130709 날짜를 잘 잘라서 가져오는데, 이름이 2자, 4자인 경우에는

01307090.. 이런 형식으로 더 잘라오는 경우입니다. 인터넷을 뒤져서 SUBSTRING? 시리즈 함수를 찾아

모두 적용해보아도 뾰족한 수 가 없네요. 혹시 이런 경험이 있으신분들이 있다면, 알려주시면 대단히 감사하겠습니다.


by 아발란체 [2013.07.12 09:10:39]

SUBSTRING이 아닌 ING 빠진 SUBSTR('...', 58, 8) 쓰신거죠?
그럼 SUBSTR이 아닌 SUBSTRB를 써보세요.

만약 이것도 되지 않는다면
SELECT LENGTH('한글') FROM DUAL로 한글 1자가 2BYTE로 결과가 4BYTE로 찍히는지
6BYTE 찍히는지 확인해보세요.

위 결과가 4BYTE가 아니라면 SUBSTRB 할 때 수치를 조정하셔야 합니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입