varchar2(10) 에 대해서.. 0 5 1,366

by 김실홍 [2016.08.24 17:33:42]


varchar2(10) 은  10 바이트 인게 맞죠?

 

select length('안녕하세요a') from dual  

결과 6

 

select vsize('안녕하세요a') from dual  

결과 11

 

안녕하세요a 의 문자열의 길이는 6개고 바이트로 하면 11바이트 맞나요??

 

제가 지금 테스트할수있는 환경이 안되서 그런데

테이블 만들어서 varchar2(10) 으로 컬럼을 만들고

안녕하세요a 라는 문자열을 입력할떄 varchar2(10) 컬럼안에 삽입이 가능한가요???

 

아시는분 가르쳐주세용 ㅠㅠ

 

 

 

by swlee [2016.08.24 17:45:23]

한글은 한글자에 2BYTE 또는 3BYTE 에요.(캐릭터셋에 따라 달라요)

컬럼을 더 늘리셔야 합니다


by 김실홍 [2016.08.24 17:52:19]

답변감사합니다 케릭터 셋은 KO16KSC5601 이고 한글 한자당 2바이트로 알고있습니다.

VSIZE를 찍었을때 11이 나온것은 11바이트 라는 의미가 맞죠?

그래서 VARCHAR(10) 에는 삽입할수 없는거군요..

 

저는 LANGTH 가 10 이하면 다 들어가는것으로 착각했었습니다... ㅎㅎ


by swlee [2016.08.24 17:54:06]

http://www.gurubee.net/article/26198

 

참고하세요~


by 마농 [2016.08.24 18:09:25]

Vsize 로 찍어서 결과까지 확인 하셨군요?

테이블 생성권한만 있다면 충분히 테스트가 가능한 환경으로 보이네요?


by 웅 [2016.08.26 10:49:20]

테이블 생성 시 데이터형선언을  varchar2(10 byte) or varchar2(10 char)로 할 수 있습니다.

varchar2(10 char)로 사용한 경우 지정한 숫자만큼 문자를 받지만 저장되는 byte는 캐릭터셋에 영향을 받습니다.

참고하세요

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입