본문 바로가기

개발/DB

[ORACLE] Ibatis 소스와 DB툴 select 쿼리 리턴 결과가 다를 때

 

오늘은 열심히 홈페이지 오류를 수정 중,

이상하게도

db툴로 실행된 쿼리

소스를 통해서 파라미터 값 받아서 실행된 쿼리의 값다르게 나왔다.

 

분명히 동일한 쿼리이고

소스 실행 후에 로그에 남은 쿼리를 긁어와서

db툴에 돌려보았는데도 결과가 달랐다... 어이 없,,

 

인터넷에 이리저리 찾아보니 아래와 같은 댓글을 발견....

(출처: https://okky.kr/article/509872)

 

즈루시님 감사해요 !!!!! 정답이었어요 !!!!!!!!!!!

 

어쨌거나 그래서 결국 한 조치

1. 테이블 내 해당 컬럼의 데이터 타입을 CHAR(8) 에서 VARCHAR2(6)으로 변경하려고 시도

(생년월일을 넣는 컬럼이었음: 6자만 들어감)

했지만

이미 데이터가 INSERT될 때 부터 CHAR로 데이터가 들어가서,

6자로 넣어도 총 8자로 맞추기위해 2자 공백을 포함하여 모든 데이터가 꽉꽉 채워져 있었음.

그래서 컬럼 데이터 타입이 변경이 안되는 상황,,,

 

  1.1 우선 VARCHAR2(10)으로 넉넉하게 임시 변경

  1.2  데이터들의 공백제거를 위해 UPDATE 해버림

UPDATE MEMBER SET BIRTH = REPLACE(BIRTH, ' ', '');

  1.3 다시 컬럼 데이터 타입을 VARCHAR2(6)으로 변경

 

 

2. 다시 소스에서 파라미터로 값 넘겨서 결과 값 보니 같아짐...........

 

 

나이스!!

 

 

 

 

반응형