[MSSQL] VARCHAR(MAX) / NVARCHAR(MAX) 에러시
2024. 11. 1. 14:45ㆍSQL
쿼리문을 @STR 변수에 담아서
마지막에 SELECT @STR을 했는데
@STR 문이 짤려서 나오며 에러가 나서 찾아봤다.
확인해보니 @STR문이 아예 중간에 짤려서 저장되어있었다.
원인 :
VARCHAR는 2^31-1 byte
NVARCHAR는 2^30-1 byte까지 지원한다.
(VARCHAR와 NVARCHAR의 차이 : VARCHAR는 바이트 수, NVARCHAR는 글자 수 기준이다.
VARCHAR는 영어, 숫자는 1byte, 그 외는 2byte 처리한다.
NVARCHAR는 모든 문자를 일괄적으로 2byte 처리한다.)
저장범위는 넓지만 문제는
VARCHAR(MAX)는 기본적으로 8000 byte 문자열이라고 잡힌다고 한다.
MAX라고 썼지만 MAX가 아닌것임..
해결방안 :
8000byte 가 넘는다면 넘어갈거라고 알려줘야한다.
@STR = CONVERT(VARCHAR(MAX), '') + '8000byte가 넘는 문자열'
이라고 알려주면 짤리지않는다.
'SQL' 카테고리의 다른 글
[MSSQL]SMALLDATETIME과 DATETIME의 차이 (0) | 2023.10.22 |
---|---|
[SQL] ORACLE, MSSQL, MYSQL에서 NULL값을 체크하는 함수 (0) | 2023.10.22 |
[SQL] !=, <> 에 대하여 (1) | 2023.10.22 |