자료형 중에서 VARCHAR2(10)으로 지정을 하고 만약 자료가 "AA"가 입력되고 "AA "공백 한자리 포함된 AA가 입력 되었을때
SELECT * FROM IMSI WHERE IMSI_FIELD = "AA"라고 하면 2건의 자료가 다 조회되지 않나요?
언젠가 책을 보니까 VARCHAR2(10)으로 하면 공백을 제외한 실제의 문자만 입력이 된다고 들었는데 아닌가요?
글쎄요... rtrim 이나 like 구문으로 처리하셔야..
varchar2(10)으로 하면 공백을 제외한 실제 문자만 입력된다는 뜻은 아마 char(10)과의 비교시 DATA SIZE 부분의 차이인것 같은데요..
참고하세요..
http://211.106.111.2:8880/bulletin/list.jsp?seq=10268&pg=1&sort_by=last_updated&keyfield=subject&keyword=char
varchar2 타입은 제가 알기론 공백을 제외하고가 아닌
첨에 10자리로 잡았는데 안에 내용이 2자리로 들어가면 안쓰이는 8자리가 안잡히는 형식으로 알고 있습니다...
공간절약인셈이죠.... char 는 잡힌대로 다 잡히지만 varchar2는 가변형으로 바뀌는...
결론부터 말씀드리면 두 건의 자료가 다 조회되지 않습니다.
CHAR type에서는 ‘AA△’를 입력하나 ‘AA’를 입력하나 들어가지는 데이타값에는 차이가 없지만, VARCHAR2 type에서는 는 두 개가 다르게 들어갑니다.
예를 들어 CHAR(4) 의 컬럼 F1과 VARCHAR2의 컬럼 F2가 있다고 할 때, 두개의 컬럼에 ‘AA’를 넣으면 F1에는 ‘AA△△’가 들어가고, F2에는 ‘AA’가 들어갑니다.
만약 ‘AA△’를 넣으면 F1에는 ‘AA△△’가 들어가고 F2에는 ‘AA△’가 들어갑니다.
직접 해보시면 금방 알 수 있는 걸 질문하신 걸로 봐서는 Oracle을 사용하실 수 없는 상황인 것 같네요. 빠른 시일내에 직접 다루면서 공부하시기를 바랍니다.