본문 바로가기

TechLog

GridView 사용시 'character set mismatch' 에러가 발생하는 경우

ASP.NET에서 GridView + SqlDataSource로 작업시에 간혹 이따위 에러가 발생하는 경우가 있다 :

 

image

 

내부적으로 Character Set이 맞지 않아서 발생하는 문제라고는 하는데, 사실 단순 쿼리를 작성하는 것 외에 내부적인 처리는 Oracle 드라이버(정확히는 OleDB 드라이버)가 대부분 자동적으로 처리하기 때문에, 이와 같은 Character Set 관련 설정등은 따로 고치기가 어렵다. 케냘의 경우에는 소 뒷발로 쥐잡듯 얼떨결에 해결했는데, 문제와 해결방법은 이런 것이었다 :

<asp:sqldatasource>

<UpdateParameters>

    <asp:Parameter Name="USER_PASSWORD" Type="String" ConvertEmptyStringToNull="true" />

</UpdateParameters>
</asp:sqldatasource>

Update 쿼리에 실어보낼 매개 변수가 있었는데, 왠지 저 항목만 끈덕지게 에러가 나는 상황이 발생. 그리하여 해결 방법은 :

<asp:Parameter Name="USER_PASSWORD" DbType="AnsiString" ConvertEmptyStringToNull="true" />

일단 Character Set이 문제라고 하면 유니코드 문자와 ASCII 코드 문자 충돌 문제가 아닐까 싶어서 저렇게 했더니 잘 돌아간다.

 

p.s:오라클에서만 발생하는 문제인지도.