MySQL Character Set issue in a procedure.
Development 2009/05/30 04:42 |진행하고 있는 프로젝트의 DB가 UTF8 로 잡힘에 따라 (처음부터 그냥 euc-kr 로 했으면 차라리 편했을 걸...다시 돌이키기에는 너무 늦어버린 그대...) 자바개발할때도 에로사항이 많았다.
특히 톰캣 환경에 따라 getBytes 를 다르게 써줘야 하는 이 난감한 상황...;;
아무튼 프로젝트가 거의 마무리 되어가면서, 특히 DB쪽 튜닝을 신경쓰고 있는 와중에, 캐릭터셋 이슈가 발생하였다.
A 테이블의 몇개의 필드 value 가 B 테이블의 동일한 이름의 필드의 value 와 동일하면, A 의 특정 필드 value로 B 의 동일한 이름의 필드의 value 를 update 하는 프로시저를 생성하였는데...
(cursor 로 뽑고 fetch~)
이상하게 비교 필드의 value 가 영문이면 잘 되는데, 비교 필드가 한글일 때에는 warning (SQLYOG 에서는...warniing 에 대한 상세정보를 전혀 안보여줘서 정말 난감;;;) 이 뿌려지며 update 가 안되는게 아닌가.
cursor 로 뽑은 각 필드 value로 비교 및 update 할 때에 CONVERT(필드값 AS UTF8) 로는 안되고.
procedure 상단쪽에 SET NAMES UTF8 해도 안되고...
주위에 겪어본 사람은 없대고...=ㅗ=
찾다찾다, FETCH INTO 로 들어가는 비교필드의 변수를 선언하는 부분에,
DECLARE tmp_kword VARCHAR(255) DEFAULT '' 로 쓰던 것을
DECLARE tmp_kword VARCHAR(255) CHARECTER SET UTF8 로 바꾸니, 해결...ㄱ-
procedure 에 따로 인코딩 설정이 있는 것도 아닐 뿐이고,
특히 두개의 테이블 모두 UTF8 일 뿐이고,
항상 내가 겪는 에로사항은 남들은 케이스조차 못들어봤다는 경우가 부지기수일 뿐이고...;;
'Development' 카테고리의 다른 글
| MySQL Character Set issue in a procedure. (0) | 2009/05/30 |
|---|---|
| [ORACLE] DBMS_SQL.DEFINE_COLUMN 사용시 PLS-00307 에러 (0) | 2009/02/27 |
| When MySQL Replication got a gap btw master & slave... (0) | 2008/11/24 |
| PL/SQL Built-In Functions (0) | 2008/10/08 |
| Ajax requesting example (0) | 2008/07/02 |
| Bottom-side 3px blank of Img tag in Internet Explorer (0) | 2008/05/19 |
이올린에 북마크하기
댓글을 달아 주세요