* 질문 등록 시 다음의 내용을 꼭 기입하여 주세요.
|
Rocky 8.8 (Linux 64bit) |
|
CUBRID 11.3.2.1187 |
|
SQLGate for CUBRID Developer 9.19.0.0 |
|
java |
* CUBRID 응용 오류, SQL 오류 또는 SQL 튜닝 관련된 문의는 반드시 다음의 내용을 추가해 주세요. 비밀글이나 비밀 댓글도 가능합니다.
* 저희가 상황을 이해하고, 재현이 가능해야 알 수 있는 문제들이 많습니다. 가능한 정보/정황들을 부탁합니다.
에러 내용 및 재현 방법 | 재현 가능한 Source와 SQL |
관련 테이블(인덱스, 키정보 포함) 정보 | CUBRID 홈 디렉토리 아래 log 디렉토리 압축 |
-------------- 아래에 질문 사항을 기입해 주세요. ------------------------------------------------------------------------
CUBRID 서버 업데이트 테스트 중에 있습니다.
기존 CUBRID 서버 버전은 CUBRID 9.3.6.0002에서 CUBRID 11.3.2.1187 로 업데이트를 위한 테스트 작업을 하고 있습니다.
ADMIN를 통해 데이터 내보내기와 가져오기를 통해 DB 구축 및 실행은 정상적으로 됩니다.
이전 버전에서는 gcode에 CHAR(20) 인 컬럼이 있어 업데이트 DB로 이관한 상태입니다.
데이터를 확인하는 과정에서 gcode 내부에 실제데이터는 20byte를 다 쓰지 않는 작은 데이터도 있습니다.
그런데 이전 버전에서는 딱히 Trim 를 사용하지 않아도 빈공간을 인식하지 않고 조건이 맞는지 확인해주는 방면에 11버전에서는 빈공간이 인식되어 쿼리에서 데이터가 없다고 나옵니다.
실제 쿼리
gcode에 존재하는 데이터 'B_ITA ' 입니다.
쿼리는
SELECT gcode
FROM publication_code
WHERE code ='B_ITA_16'
AND gcode = left('B_ITA_16', length('B_ITA_16') - instr(reverse('B_ITA_16'),'_'))
입니다.
CUBRID 9.3.6.0002에서는 결과가 나오고 CUBRID 11.3.2.1187 에서는 결과가 나오지 않는 부분을 혹시 쿼리를 수정하지 않고 데이터를 trim 으로 업데이트 하지 않고 동일하게 할 수 잇는 방법이 있을까요?
ltrim, rtrim, trim등 특정 문자를 지워주는 함수가 있습니다. 해당 함수를 이용해 보시는 것은 어떠할지요?
and trim(gcode) = 'B_ITA';
감사합니다.