본문 바로가기

db234

DB2 한글 length 확인하기 DB2에서 한글 길이 확인하기 한글은 UTF-8, 3바이트로 인식되서 1글자의 length는 3 이라고 출력된다. 이때는 CHARACTER_LENGTH를 사용하면된다. SELECT CHARACTER_LENGTH('한글OR영문', CODEUNITS32) FROM DUAL 뒤에 CODEUNITS32를 붙이는 이유는 UTF-8 이라서 영문이던 한글이던 숫자이던 1글자는 LENGTH길이가 1로 출력된다. - 추가 포스팅 DB2 한글 substr 사용하기 Transliteration failed, reason: invalid UTF8 data 2015. 8. 20.
DB2 substr 사용하기 DB2 substr 사용하기 어느 DB이던 비슷비슷하겠지만, DB2에서 substring은 조금 특별하다. substr(textData, 1, 20) textData 컬럼의 값이 한글일때, substr은 바이트기준으로 length를 자르기 때문에 '가나다라마가나다라마' 값이면 1 ~ 20은 한글은 3바이트'가나다라마바'로 6자리 하고 알 수 없는 2바이트값이 나온다. 이렇게 되면 'Transliteration failed, reason: invalid UTF8 data' 에러가 나올 수 있다. 그럼 substr(textData, 1, 24)로 수정하면 된다. (2 or 3 으로 나눠도 딱 떨어진다)(물론, 이 방법은 무식한 방법이지만) DB2 substring으로 한글과 영문 정확하게 원하는 만큼 자르고.. 2015. 8. 20.
[FMWGEN][DB2 JDBC Driver]Transliteration failed, reason: invalid UTF8 data -- Check the result mapping for the 'textData' property. --- Cause: java.sql.SQLException: [FMWGEN][DB2 JDBC Driver]Transliteration failed, reason: invalid UTF8 data 에러 내용은 간단하다. 'textData' 매핑을 확인해라. 문자변경에 실패하였다. 이유는 인식이 불가능한 UTF-8 데이터다. 나같은 경우는 substr(textData, 1, 20) 때문이였다. textData 컬럼의 값이 한글일때, substr은 바이트기준으로 length를 자르기 때문에 '가나다라마가나다라마' 값이면 1 ~ 20은 한글은 3바이트'가나다라마바'로 6자리 하고 2바이트값 ''(알 수 없는 이.. 2015. 8. 20.
DB2 날짜 계산 DB2에서 날짜 계산하는 방법 예제 : current date + 1 YEAR current date + 3 YEARS + 2 MONTHS + 15 DAYS current time + 5 HOURS - 3 MINUTES + 10 SECONDS 년/월/일 : YEAR / MONTH / DAY시/분/초 : HOUR / MINUTES / SECOND 쉽죠? 예제2 : SELECT TIMESTAMPDIFF (n, char(timestamp('2002-11-30-00.00.00')-timestamp('2002-11-08-00.00.00')))FROM DUAL 2 = Seconds 4 = Minutes 8 = Hours 16 = Days 32 = Weeks 64 = Months 128 = Quarters 256 =.. 2015. 8. 6.