기본중에 기본일거 같지만 여태까지 몰랐던 내용....
테이블에 정의한 컬럼길이 비교는 LEN이 아니라 DATALENGTH로 해야 한다는것을....
에러가 난다고 해서 보니 테이블 컬럼은 VARCHAR(100), 입력되는 문자열의 길이를 LEN 해보니 62..
대체 왜 에러가 나는걸까 이리 보고 저리보고 한참 찾아보고 고민후에 문자열의 길이를 DATALENGTH로 해보니 102가 나온다 -_-;;
한글은 2바이트로 계산되는것을 잊고 살았던것....
기존에는 문자열 입력 컬럼을 여유있게 잡아서 경험해보지 못한 에러였다.
이렇게 하나 또 알아가게 되는것이겠지..
예제(테이블 생성하고 INSERT 하면 에러가 남)
CREATE TABLE dbo.T1
(
memo VARCHAR(100)
)
INSERT INTO dbo.T1
VALUES ('3/15 물류_ 차량배송_일반발주(모니터)와 함께 배송요망/제품 꼭 올려주셔야 합니다.(사무실에 사람이 없음.)')
SELECT LEN('3/15 물류_ 차량배송_일반발주(모니터)와 함께 배송요망/제품 꼭 올려주셔야 합니다.(사무실에 사람이 없음.)')
SELECT DATALENGTH('3/15 물류_ 차량배송_일반발주(모니터)와 함께 배송요망/제품 꼭 올려주셔야 합니다.(사무실에 사람이 없음.)')
PS.컬럼이 NVARCHAR(100)이면 문제가 안생긴다;;
'Program > DB' 카테고리의 다른 글
SQL SERVER 열려있는 트랜잭션이 있는지 확인 (0) | 2017.03.28 |
---|---|
SQL Server 시작 시간 (0) | 2016.08.08 |
mysql 뷰(view), 프로시저(procedure) 내용 확인 (0) | 2016.02.24 |
SQL Server 다른 서버에 있는 DB와 연결하기 (1) | 2014.07.24 |
MySQL ROW_NUMBER() (0) | 2012.08.14 |