Background Image

FORUM

조회 수 105 추천 수 0 댓글 1
?

단축키

Prev이전 문서

Next다음 문서

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

 


* 질문 등록 시 다음의 내용을 꼭 기입하여 주세요.

OS
Rocky Linux
CUBRID Ver.
11.2.7.0797
CUBRID TOOL Ver.
10.2.0.0001
응용 환경(API)
java, mybatis, cubrid


* CUBRID 응용 오류, SQL 오류 또는 SQL 튜닝 관련된 문의는 반드시 다음의 내용을 추가해 주세요. 비밀글이나 비밀 댓글도 가능합니다.
* 저희가 상황을 이해하고, 재현이 가능해야 알 수 있는 문제들이 많습니다. 가능한 정보/정황들을 부탁합니다.

 

에러 내용 및 재현 방법 재현 가능한 Source와 SQL
관련 테이블(인덱스, 키정보 포함) 정보 CUBRID 홈 디렉토리 아래 log 디렉토리 압축


-------------- 아래에 질문 사항을 기입해 주세요. ------------------------------------------------------------------------
 

테이블 정보

 

CREATE TABLE [product] (
    [id] CHARACTER VARYING (34) NOT NULL,
    [prd_id] CHARACTER VARYING (100) NOT NULL,
    CONSTRAINT [pk] PRIMARY KEY([id])
)
REUSE_OID,
COLLATE utf8_bin

 

현재 1번 DB 서버와 2번 DB 서버에서 같은 쿼리를 실행시켰을때

1번DB 서버에서는 정상적으로 실행되나 2번에서 에러가 발생합니다.

1번 서버와 2번 서버의 차이는

 

DB서버 1번 2번
큐브리드 버전 10.2.8.8904 11.2.7.0797
OS CentOs Rocky Linux
collate utf-8 ko_kr utf-8 en_us
reuse_oid 미사용 사용

 

이며 실행 쿼리는 다음과 같습니다.

 

SELECT
    CASE
        WHEN (
            prd_num IS NULL
            OR prd_num = ''
        ) THEN '0'
        ELSE prd_num
    END
FROM
    (
        SELECT
            prd_id,
            COUNT(id) AS prd_num
        FROM
            product
        GROUP BY
            prd_id
    );

 

1번 DB는 정상적으로 실행 되나

 

2번 DB로 같은 쿼리를 실행시켰을때 아래와 같은 에러가 발생합니다.

 

실행 오류 : -494
Semantic: before ' 
        ) THEN '0'
        ELSE prd_num
    END
FROM
    (
        SELECT
            ...'
Cannot coerce '' to type bigint. select case when ([__t1].prd_num is null  or [__t1].prd_num=...

 

2번 DB에서

 

COUNT(id) AS prd_num 부분을

 

CAST(COUNT(id) AS VARCHAR) AS prd_num 으로 변경시 정상적으로 실행됩니다.

 

결론은

 

1. 비슷한 조건의 DB에서 동일 쿼리를 실행했을때 오류가 발생한 원인이 큐브리드의 문제인지

2. VARCHAR 로 캐스팅 했을때 쿼리가 실행되는 이유

3. 또는 다른 요인이 있는지

 

궁금합니다.

 

답변 부탁드립니다.

 

  • ?
    오명환 2023.11.21 17:14
    11.2부터 count() 결과 타입이 int에서 bigint로 변경되었고, 그래서 prd_num의 값이 bigint 인데, 문자열 ''와 비교를 하게 되어 내부적으로 ''를 bigint로 자동 형 변환하면서 발생하는 오류입니다.
    문자열을 bigint로 자동 형 변환시 발생한 오류는 11.3에서 수정되었습니다.

    참고로 CUBRID에서는 count() 반환값이 ''로 전달되는 경우가 없으므로 해당 조건 prd_num=''를 제거하고 사용하시면 됩니다.

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

    Date2024.04.23 Byadmin Views61
    read more
  2. SQLGate for CUBRID 영구 무료 라이선스 제공

    Date2020.04.09 Byadmin Views4464
    read more
  3. 멀티host상태에서 admin툴 로그인방법 문의합니다

    Date2023.12.20 By원샷 Views101
    Read More
  4. DB 서버가 start 되지 않아 문의드립니다.

    Date2023.12.19 By그로구 Views130
    Read More
  5. Rocky Linux 9에 큐브리드 9.3버전 설치

    Date2023.12.19 By범이 Views100
    Read More
  6. 인덱스 사용 관련하여 문의드립니다.

    Date2023.12.12 Byneighbor Views113
    Read More
  7. cubrid admin접속 불가 문의

    Date2023.12.11 By이하륜 Views92
    Read More
  8. restoredb 진행시 오류가 발생합니다.

    Date2023.12.08 Bysamsam Views116
    Read More
  9. SQL 행, 10분이상 지연 시 해제 및 설정 방법 문의 드립니다

    Date2023.12.06 Bykdman Views108
    Read More
  10. 에러코드 -51 질문드립니다.

    Date2023.12.01 Bykkkkwwakji Views111
    Read More
  11. 오류 메세지 문의 Derived column names are not allowed for simple class specifications.

    Date2023.12.01 By달이맘 Views125
    Read More
  12. 큐브리드 매니져 접속오류문의 드립니다.

    Date2023.11.30 By원샷 Views142
    Read More
  13. query 최대 실행 줄 수 가 어떻게 되나요??

    Date2023.11.24 Bykjn4345 Views153
    Read More
  14. 같은 그룹에 속한 OS계정에서의 csql접속

    Date2023.11.22 Byf0081 Views109
    Read More
  15. 비슷한 조건의 환경에서 select 질의시 오류가 발생합니다.

    Date2023.11.21 Bymsbb8585 Views105
    Read More
  16. 임시볼륨 늘어나는 문제

    Date2023.11.21 Byangdoo Views97
    Read More
  17. DB 데이터 이전 관련

    Date2023.11.20 By별린 Views121
    Read More
  18. Java Maven Repository

    Date2023.11.16 By내멋으로 Views123
    Read More
  19. Cubrid의 Window 버전의 Broker Port 구성 방식

    Date2023.11.15 Byjhlee Views102
    Read More
  20. [CUBRID Admin] ENUM 데이터 내보내기

    Date2023.11.14 Bytree1891 Views110
    Read More
  21. CUBRIDException: Data type references are incompatible. 에러관련 쿼리질문

    Date2023.11.14 Byyhpark Views220
    Read More
  22. 사용자 삭제 시 소유한 오브젝트를 함께 삭제하는 방법

    Date2023.11.14 Byf0081 Views136
    Read More
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