MSSQL varchar , nvarchar 비교하기

declare @str varchar(30)
declare @nstr nvarchar(30)

set @str = 'abcd'
set @nstr = 'abcd'

print @str + '|'
print @nstr + '|'

-- 유니코드일때
set @str = '가나다라'
set @nstr = '가나다라'

print @str + '|'
print @nstr + '|' 


위 처럼 크기가 충분할땐 결과에서 차이가 없다.
[결과]
abcd|
abcd|
가나다라|
가나다라| 
 

크기를 작게 해보다..!! 어떻게 될까?

declare @str varchar(3)
declare @nstr nvarchar(3)

set @str = 'abcd'
set @nstr = 'abcd'

print @str + '|'
print @nstr + '|'

-- 유니코드일때
set @str = '가나다라'
set @nstr = '가나다라'

print @str + '|'
print @nstr + '|' 

결과는 이렇다.
[결과]
abc|
abc|
가|
가나다|
 
 

유니코드일땐 뭔가 결과가 다른게 보인다.
같은 크기의 "3" 을 주었지만, nvarchar 에서는 실제 6바이트가, varchar에는 3바이트가 할당되고.. 그결과 @str 에는 3바이트 '가나' 밖에 안들어갔네요.. 6바이트가 할당된 @nvarchar 에는 '가나다'가 들어갔죠~....

끝~~





저작자 표시 비영리 변경 금지
신고

'개발 > 기타' 카테고리의 다른 글

Execute Oracle Procedure Test  (0) 2011.11.23
MSSQL varchar vs nvarchar  (0) 2011.04.27
MS SQL 2008 Express 설치 중 오류  (0) 2011.03.17
TCP/IP 포트 할당에 대한 정보  (0) 2011.03.11

+ Recent posts