포럼
확장변수값 크기 비교할때....
2011.12.14 09:17
개발자 포럼과 사용자포럼을 합치는게 좋을듯하긴하네요
저도 여기에다가 글을 쓰는거 보면... ^^
단순 질문/답변 이라기보다는..
개발자들 중에 이 부분에 대한 의견이나 유용한 소스가 있는지 알아보고파서 남긴거여서, 여기에 써둡니다.
개발하시다가 저와 같은 문제 겪어보신 분이 계실텐데
확장변수 로 가격 (숫자형) 을 넣고..
XE 쿼리로 more 나 less 로 검색하고 픈 경우.. 문제가 발생하더라고요
이유는 확장변수의 value 가 varchar 문자형이기 대문에 발생하는건데..
문자열간 크기비교를 해버리면 숫자처럼 비교하는게 아니라, 글자수와 무관하게 제일 앞자리부터 비교를 해버리거든요
확장변수로 1300 이 저장되어있는 상황에서
12000 이상 으로 검색해도.. 1300 이 같이 검색되어버리는거죠.
자리수가 하나 적으니 당연히 적은수이지만, 문자 검색시엔 그걸 상관을 안 하더라고요.
이걸 편법을 써서 처리하면.. 글자수를 딱 맞추고, 앞에 0 을 체워서 저장하는 방법인데..
1300 이 아니라 01300 이렇제 저장하면 첫자리를 0 으로 인식해서 처리하기에, 숫자형이랑 똑같이 처리되더라고요
확장변수 전부다 숫자만 쓰면 DB table 자체를 varchar 가 아니라 bigint 처럼 처리해도 되는데,
확장변수가 다른 용도로도 많이 쓰니, 문자를 제외할수도 없으니.. 이것도 불가능하고요
그런데 이런 0 을 넣는 방법 말고, 문자로 인식되는 확장변수를 숫자형 비교 처럼 처리할 방법 없을까요?
mysql 함수들을 이용하고파도, XE xml 에서 이 함수들을 지원하는지도 미지수이고...
말씀하신것을 구현하려면 각 dbms의 함수를 써줘야하는데 xml쿼리상으론 힘들테고 호환성 문제가 발생할수밖에 없을것 같네요..