티스토리 뷰

아니 왜 나 있을때만 그러냐고 ....

안녕하세요 츈식입니다.

회사에서는 지난 N년간 발생하지 않았던 문제들이 제가 있을 때 발견되고 있는데 오늘의 문제는 db 데이터값에 빈칸이 있어서 로직이 제대로 안 되고 있었던 문제입니다.

 

일단 테이블의 컬럼에 빈칸이 있는 걸 확인합니다.

 select * from 테이블명 where INSTR(컬럼명, ' ') > 0;

그럼 이렇게 문자열 뒤에 빈칸이 있는 데이터가 나옵니다.

일반적으로 하나하나 눌러서 확인하기 힘들고, 또 그렇다고 해서 눈으로 확인하기 힘든걸 위의 쿼리를 사용하시면 쉽게 발견하실 수 있습니다.

 

빈칸이 있어 오류가 났으니, 업데이트를 칩니다.


오라클 replace

replace('컬럼명','찾을 문구','변환할 문구')


update 테이블명 
set 컬럼명 = replace(컬럼명,' ','') 
where 컬럼명 in (select 컬럼명 from 테이블명 where INSTR(컬럼명, ' ') > 0); 
commit;

 

 

위에서 빈칸 조회하는 쿼리를 사용해서 update를 칩니다. 우리의 친구 커밋 필수~

 

빈칸이 저장되지 않도록 로직 변경이 필수 of 필수인데 이제 변경 해야죠... ^^