SQL Server ETL( Extract, Transform, Load ) 작업 시 많이 겪는 에러 중 하나가
“String or binary data would be truncated” 입니다.
이는 테이블 컬럼에 정의된 문자열 길이보다 큰 데이터 입력되는 상황에서 발생되는 오류사항으로
원인을 찾기가 어려운 경우가 있습니다.
SQL Server 2019 CTP 2.0 부터는 문자열 잘림에 대한 에러 메시지를 쉽게 확인할 수 있도록 개선되었습니다.
사용방법은 추적 플래그 460을 활성화(기본 비활성화 상태) 하는 것이며 오류 메시지에 Table 및 컬럼과
Data 정보까지 출력되어 오류가 발생하는 부분을 바로 확인할 수 있습니다.
단 해당 설정은 SQL 버전이 SQL Server 2017(14.x) CU12 이상의 빌드에 적용됩니다.
<예제 Script>
print '/*TRACE ON 460***********************************************/'
CREATE TABLE _Tempest(Txt NVARCHAR(10))
DBCC TRACEON(460)
--DBCC TRACESTATUS(460)
INSERT INTO _Tempest SELECT '1234567890123'
DROP TABLE _Tempest
print '/***********************************************************/'
print '/*TRACE OFF 460*********************************************/'
CREATE TABLE _Tempest(Txt NVARCHAR(10))
DBCC TRACEOFF(460)
--DBCC TRACESTATUS(460)
INSERT INTO _Tempest SELECT '1234567890123'
DROP TABLE _Tempest
print '/***********************************************************/'
<처리 결과>
읽어주셔서 감사합니다.
반응형
최근댓글