티스토리 뷰
반응형
주민등록번호와 같이 값의 길이가 일정한 컬럼 즉 고정길이 컬럼에만 char형을
사용하고 값의 길이가 제각각인 컬럼엔 varchar 형을 사용해야 합니다.
char(5) 형인 컬럼에 'aaaa' 란 값을 넣으면 실제로 'aaaa ' 처럼 뒤에 한자리 공백이
들어 갑니다. 이렇듯 의도하지 않은 곳에 공백이 들어갈 수 있어 sql문에서 의도하지
않은 결과를 낳을 수 있습니다.
한가지 예로 where 절에서 고정길이 컬럼인 A 값을 비교할 때 A='aaaa' 라고 해도
'aaaa ' 값을 찾을 수 있지만 A = DECODE(1,1,'aaaa','etc') 라고 하면 찾지를 못합니다. 즉 decode 문을 통해 나온 값은 공백이 있는 A 컬럼과 비교할 수 없는 것입니다.
고정길이 컬럼에만 char 형을 사용 이란 원칙을 지키지 않으면 sql 작성시 trim() 을
사용하는 불상사를 겪을 수 있습니다.
저두 오늘 이문제 때문에 한참을 고생했거든요.
동일한 컬럼 속성인데 테이블마다 크기도 다르고 데이터형도 다르다니 . . .
새삼 모델링의 중요성과 기본에 충실해야 함을 뼈저리게 느끼는 하루였습니다.
사용하고 값의 길이가 제각각인 컬럼엔 varchar 형을 사용해야 합니다.
char(5) 형인 컬럼에 'aaaa' 란 값을 넣으면 실제로 'aaaa ' 처럼 뒤에 한자리 공백이
들어 갑니다. 이렇듯 의도하지 않은 곳에 공백이 들어갈 수 있어 sql문에서 의도하지
않은 결과를 낳을 수 있습니다.
한가지 예로 where 절에서 고정길이 컬럼인 A 값을 비교할 때 A='aaaa' 라고 해도
'aaaa ' 값을 찾을 수 있지만 A = DECODE(1,1,'aaaa','etc') 라고 하면 찾지를 못합니다. 즉 decode 문을 통해 나온 값은 공백이 있는 A 컬럼과 비교할 수 없는 것입니다.
고정길이 컬럼에만 char 형을 사용 이란 원칙을 지키지 않으면 sql 작성시 trim() 을
사용하는 불상사를 겪을 수 있습니다.
저두 오늘 이문제 때문에 한참을 고생했거든요.
동일한 컬럼 속성인데 테이블마다 크기도 다르고 데이터형도 다르다니 . . .
새삼 모델링의 중요성과 기본에 충실해야 함을 뼈저리게 느끼는 하루였습니다.
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 화분벌레
- yugabyteDB
- Life Chair
- JMW 헤어드라이기기
- node.js
- 고체 향수
- 르세라핌
- weka
- 매직 트랙패드2
- VARIDESK
- 코라나 19
- 유가바이트디비
- 브리다 정수기
- Pixel Pals
- 파나소닉 비데 DL-EH10KWS
- Sybase IQ
- GKRS
- 홈 오피스
- 남설 팔찌
- 루미큐브 종류
- 오미크론
- 톡토기
- 카카오 에드
- 증권정보포털
- 솔리드 쿨론
- 빈센트 반 고흐
- 배당급
- 로니카 BCS
- 별잉 빛나는 밤
- 별이 빚나는 밤
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
글 보관함