음 제가 ,MySQL UDF 를 작성중인데요.
간단하게 문자열을 비교하는 UDF입니다.
아래는 소스의 일부입니다.
그런데 한글이 인자로(전체 인자는 2개) 입력되면 strcmp 자체가 이상하게 작동합니다.
정확하게는 행이 하나인 쿼리에서는 제대로 작동합니다. 그러나 행이 여러개 이면 동일한 문자열이 들어간다 하더라도 같지 않다고 해버리는 겁니다.
그런데 영문은 잘 작동한다는 겁니다. 저의 짧은 지식으로는 strcmp는 한글이라도 잘 작동하는 걸로 아는데요 무슨 문제일까요.
제가 뭔가 빠뜨린게 있을까요?
//----------------------------------------------------------------------------------------------
char key[500];
memcpy(key, args->args[0], args->args->lengths[0]);
char tar[500];
memcpy(tar, args->args[1], args->args->lengths[1]);
strcmp(key, tar); // 입력 문자열이 완전히 동일한지 비교. <-- 여러행에 대해 이 소스코드로 만든 UDF를 적용하면, 한글의 경우 이상하게 작동합니다.
...
strtok('key, " "); // 문자열을 잘라서 비교 .. <-- 이 부분에서도 이상하게 작동하는듯도 하구요.
...
//------------------------------------------------------------------------------------------------
|