* 질문 등록 시 다음의 내용을 꼭 기입하여 주세요.
리눅스 64비트 | |
10.1.1.7691 | |
10.0.0.1 | |
JAVA |
* CUBRID 응용 오류, SQL 오류 또는 SQL 튜닝 관련된 문의는 반드시 다음의 내용을 추가해 주세요. 비밀글이나 비밀 댓글도 가능합니다.
* 저희가 상황을 이해하고, 재현이 가능해야 알 수 있는 문제들이 많습니다. 가능한 정보/정황들을 부탁합니다.
에러 내용 및 재현 방법 | 재현 가능한 Source와 SQL |
관련 테이블(인덱스, 키정보 포함) 정보 | CUBRID 홈 디렉토리 아래 log 디렉토리 압축 |
-------------- 아래에 질문 사항을 기입해 주세요. ------------------------------------------------------------------------
전자정부 + mybatis + 큐브리드 10.1 사용중입니다.
#{aaa , jdbcType=VARCHAR} 쪽에서 일부 에러가 나길래
쿼리를 훑어보니까 아래처럼 사용한 데서만 에러가 발생했습니다.
파라미터는 map<String,Object> 형식으로 담아오고 담을 때 값은 String입니다.
SELECT
CASE WHEN TEMP.CHG_TYPE = 'UP' << 요기
THEN ... 생략
END AS COLNAME
FROM
(
SELECT
SUB_DATA3.SYSTEM_CD AS SYSTEM_CD
, #{chgType, jdbcType=VARCHAR} AS CHG_TYPE
FROM
( ... 생략 )
) TEMP
위에 표시해놓은 비교 부분에서 에러가 나던데
오라클에서는 에러가 없는 부분이라 큐브리드는 데이터 형식 처리가 다른건가요.
오라클 드라이버랑 차이점이 있는건지 궁금합니다.
저 'UP'이라고 된 부분을 함수 사용해서 UPPER('UP') 이런 식으로 바꾸면 에러가 안나는 상황이구요.
에러는 다 치환해서 해결하면 될 것 같긴 한데 원인이 궁금해서 문의 드립니다.
cubrid 서버의 $CUBRID/log/broker/sql_log 아래에 있는 로그 파일들 중에서 실행하신 mybatis 질의가 어떤 질의로 바뀌었는지 확인을 해 보시는 것이 좋을 것 같습니다.
현재 오류는 임의적으로 character data type을 원하시는 data type으로 변경할 수 없다는 오류입니다.
로그에서 찾으신 질의를 가지고 csql 또는 cubrid manager에 수행해보시면서 확인을 부탁드립니다.