Background Image

FORUM

조회 수 2696 추천 수 0 댓글 4
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

* 질문 등록 시 다음의 내용을 꼭 기입하여 주세요.
OS
리눅스 64비트
CUBRID Ver.
10.1.1.7691 
CUBRID TOOL Ver.
10.0.0.1
응용 환경(API)
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') 이런 식으로 바꾸면 에러가 안나는 상황이구요.


에러는 다 치환해서 해결하면 될 것 같긴 한데 원인이 궁금해서 문의 드립니다.

  • ?
    오명환 2018.04.10 10:08
    문의하신 내용만으로 어떤 문제인지를 확인하기 어렵습니다.
    cubrid 서버의 $CUBRID/log/broker/sql_log 아래에 있는 로그 파일들 중에서 실행하신 mybatis 질의가 어떤 질의로 바뀌었는지 확인을 해 보시는 것이 좋을 것 같습니다.

    현재 오류는 임의적으로 character data type을 원하시는 data type으로 변경할 수 없다는 오류입니다.
    로그에서 찾으신 질의를 가지고 csql 또는 cubrid manager에 수행해보시면서 확인을 부탁드립니다.
  • ?
    잉여개발자 2018.04.10 17:34

    간단한 쿼리로 테스트하려고 바꾸고 돌려보니

    18-04-10 17:30:43.687 (9) execute_all srv_h_id 1
    SELECT (CASE WHEN TMP.A = 'UP' THEN 'Y' ELSE 'N' END) AS SHOW
    FROM (
    SELECT ? as A
    FROM
    DB_ROOT
    ) AS TMP

    18-04-10 17:30:43.687 (9) bind 1 : VARCHAR (10)SYST_0002
    18-04-10 17:30:43.689 (9) execute_all error:-181 tuple 0 time 0.001, EID = 9

    로그는 이거만 남네요.

  • ?
    오명환 2018.04.11 09:36
    -181 오류메세지는 Cannot coerce value of domain character to domain " 입니다.
    보내주신 질의를 보니, db_root에서 ? 에 의해 결정된 값을, 상위에 select에서 사용하다 보니 query execute 시에 type 결정(variable)을 못합니다.
    이런 경우에는 명시적으로 type를 아래와 같이 정의해주시면 됩니다.

    SELECT cast(? as varchar) as A
    FROM
    DB_ROOT
  • ?
    잉여개발자 2018.04.11 10:57
    캐스팅 지정 해줘야하는군요 감사합니다.

  1. No Image notice by admin 2024/04/23 by admin
    Views 31 

    CUBRID 사용자를 위한 DBeaver 도구 출시 안내

  2. SQLGate for CUBRID 영구 무료 라이선스 제공

  3. 특정DB만 접근 시간이 현저하게 오래 걸리는 문제

  4. jdbc 연동시의 charset 강제 변경 방법

  5. 도커로 HA환경 구성 테스트중 hb start..

  6. 이중화 관련 문의드립니다.

  7. 큐브리드 마스터 복제 관련 문의 드립니다.

  8. 큐브리드 다운로드 에러

  9. CUBRID Migration Toolkit "orai18n.jar" 추가 방법

  10. CUBRID 에러 로그 관련 확인 요청

  11. DB링크로 조회시 문자타입이 조회되지 않고 있습니다.

  12. 다른 사용자 계정에서 csql로 localhost 접근 문제

  13. [성능이슈] 큐브리드 함수 사용으로 인한 성능이슈

  14. CUBRID 11.2 rpm 설치시 cubrid 계정 패스워드

  15. Cubrid JDBC 버전에 따라 출력되는 결과가 다릅니다.

  16. select 질의문 문의

  17. cubrid statdump 기술 문의드립니다.

  18. 날짜 형식 변환에 대해서 궁금해서 올립니다.

  19. 컬럼의 Enum DataType 가져오는것 문의

  20. Redhat 8버전 tls 1.0 에러

  21. 테이블이 어떤 스키마(데이터베이스)에 속해있는지 알 수 있는 방법이 있나요?

  22. 테이블 생성시 REUSE_OID 옵션끄기 문의드립니다

Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 200 Next
/ 200

Contact Cubrid

대표전화 070-4077-2110 / 기술문의 070-4077-2113 / 영업문의 070-4077-2112 / Email. contact_at_cubrid.com
Contact Sales