조회를 하는데, 엉뚱한 값을 불러와서 찾아보니 한글이 문제였습니다. 컬럼 a = 'abc홍길동defghijk' 일때. Select Substring( 11, 1 ) 하면, 한글은 2Byte처리하여 e가 나와야되는데, 1Byte로 처리되어 h가 조회 됩니다.
어떻게 방법이 없을까요?
select substring(col::bytea, 11, 1) 이런식으로 해보세요
근데
euckr 이면 한글이 2byte 이지만 utf8 이면 3byte 인데...
여기서도 분명 그에 대한 혼란이 올거같은데 말이죠..
select SubString( rtn_text::text, 239, 12 ) From t_card_rtn_junmun where idx = 7
rtn_text이 컬럼명이고 text형입니다. 위처럼 조회하니까 한글을 1Byte로 인식하는건 마찬가지네요. T.T 한글은 utf8입니다. 다른 방법은 없을까요?
::text 가 아니라 ::bytea 입니다만...
rtn_text가 text형 컬럼인데 select SubString( rtn_text::bytea, 239, 12 ) 하면
ERROR: cannot cast type text to bytea
********** 에러 **********
ERROR: cannot cast type text to bytea SQL 상태:42846
에러 납니다.
희얀하네요
text 자료형이라면 bytea 로 무리없이 형변환 될텐데 말이죠...
버젼이 어캐 되시는지요?
버전은 8.1입니다
http://www.postgresql.org/docs/8.2/interactive/functions-binarystring.html
8.2 에서도 변환 잘 되나 보네요
8.1 은 메뉴얼 자체가 안 보이는군요...