문제
아래와 같이 테이블에 데이터를 집어 넣었다.
create table EXCHANGE_RATE_CURRENCY
(
EXCHANGE_RATE_TYPE CHAR(7) not null,
CURRENCY_CD_FROM CHAR(3) not null,
CURRENCY_CD_TO CHAR(3) not null,
constraint EXCHANGE_RATE_CURRENCY
primary key (EXCHANGE_RATE_TYPE, CURRENCY_CD_FROM, CURRENCY_CD_TO)
);
Application에서 JOOQ를 이용해 데이터를 조회하려고 하니, 'DAILY'로 데이터가 하나도 조회되지 않았다.
하지만 'AVERAGE'는 조회가 되었다.
원인
VARCHAR가 아닌 CHAR를 사용해서 그랬다.
CHAR(7)을 사용하니 컬럼에 값이 'DAILY가 아니라 'DAILY '로 들어갔다.
해결
아래와 같이 EXCHANGE_RATE_TYPE의 컬럼 속성을 CHAR에서 VARCHAR2로 변경해주니 문제가 해결되었다.
create table EXCHANGE_RATE_CURRENCY
(
EXCHANGE_RATE_TYPE VARCHAR2(7 char) not null,
CURRENCY_CD_FROM CHAR(3) not null,
CURRENCY_CD_TO CHAR(3) not null,
constraint EXCHANGE_RATE_CURRENCY
primary key (EXCHANGE_RATE_TYPE, CURRENCY_CD_FROM, CURRENCY_CD_TO)
);
'트러블슈팅' 카테고리의 다른 글
스프링부트에서 Cannot find cache named 캐시명 for Builder 에러 (1) | 2024.12.27 |
---|---|
application-test.yml의 보안키를 제거하고 Jenkins에 Credential 설정 (0) | 2024.12.20 |
IntelliJ에서 애플리케이션 부팅 시 lombok cannot find symbol 에러 해결 (0) | 2024.11.27 |
JMX Port를 통해 공격자가 서버에 접근하는 보안 문제 (0) | 2024.11.15 |
JSP에서 XSS (Cross-Site Scripting) 보안 문제 (0) | 2024.11.15 |