728x90
반응형
테이블의 데이터 형식은 정해져 있는데 정해진 용량보다 문자가 클 경우
잘라서 INSERT 해야 한다. 이때 문자 갯수 기준으로 하면 한글과 숫자/영문이 Byte가 다르기 때문에
딱맞게 자를 수가 없다.
이때,
쿼리상에서 String 형식의 값을 문자열로 한글자 자르는 것이 아니라
한글(2byte), 영문/숫자(1byte)로 Byte 단위로 잘라서 INSERT 시킨다.
INSERT INTO 주문테이블 (상품명)
SELECT CASE WHEN DATALENGTH(상품명) > 200
THEN SUBSTRING(CONVERT(TEXT, 상품명), 1, 198) + '...'
ELSE 상품명 END AS 상품명
FROM 상품목록
※포인트
DATALENGTH 와 CONVERT(TEXT, 상품명)
728x90
반응형
'DataBase' 카테고리의 다른 글
쿼리는 빠른데 프로시져는 느린 현상 해결하기 (0) | 2020.12.01 |
---|---|
정보처리 자격증 필수 암기 항목 - DML, DDL, DCL, TCL 데이터베이스 명령어의 종류 (0) | 2020.11.18 |
mssql 현재접속자 (0) | 2020.11.04 |
메모리과부하 (0) | 2020.11.04 |
MSSQL의 Merge 로 데이터 병합처리 (0) | 2020.11.04 |
댓글