다음을 통해 공유


데이터 오류 처리

데이터 흐름 구성 요소가 열 데이터에 변환을 적용하거나, 원본에서 데이터를 추출하거나, 데이터를 대상으로 로드하는 경우 오류가 발생할 수 있습니다. 예기치 않은 데이터 값으로 인해 오류가 자주 발생합니다. 예를 들어 열에 숫자 대신 문자열이 포함되어 있기 때문에 데이터 변환이 실패하고, 데이터가 날짜이고 열에 숫자 데이터 형식이 있기 때문에 데이터베이스 열에 삽입하지 못하거나, 열 값이 0이므로 식이 평가되지 않아 유효하지 않은 수학 연산이 발생합니다.

오류는 일반적으로 다음 범주 중 하나에 속합니다.

  • 데이터 변환 오류는 변환으로 인해 유효 자릿수 손실, 중요하지 않은 자릿수 손실 및 문자열 잘림이 발생하는 경우 발생합니다. 요청된 변환이 지원되지 않는 경우에도 데이터 변환 오류가 발생합니다.

  • 런타임에 계산되는 식이 잘못된 작업을 수행하거나 누락되거나 잘못된 데이터 값으로 인해 구문적으로 올바르지 않은 경우 발생하는 식 평가 오류입니다.

  • 조회 작업에서 조회 테이블에서 일치 항목을 찾지 못하는 경우 발생하는 조회 오류입니다.

많은 데이터 흐름 구성 요소는 오류 출력을 지원하므로 들어오는 데이터와 나가는 데이터 모두에서 구성 요소가 행 수준 오류를 처리하는 방법을 제어할 수 있습니다. 입력 또는 출력의 개별 열에 대한 옵션을 설정하여 잘림 또는 오류가 발생할 때 구성 요소가 동작하는 방식을 지정합니다. 예를 들어 고객 이름 데이터가 잘리는 경우 구성 요소가 실패해야 함을 지정할 수 있지만 덜 중요한 데이터가 포함된 다른 열의 오류는 무시합니다.

오류 출력은 다른 변환의 입력에 연결되거나 오류가 아닌 출력과 다른 대상으로 로드될 수 있습니다. 예를 들어 오류 출력은 비어 있는 열에 대한 문자열을 제공하는 파생 열 변환에 연결될 수 있습니다.

다음 다이어그램에서는 오류 출력을 포함한 간단한 데이터 흐름을 보여 드립니다.

오류 출력이 있는 데이터 흐름

오류 출력에는 데이터 열 외에도 ErrorCodeErrorColumn 열이 포함됩니다. ErrorCode 열은 오류를 식별하고 ErrorColumn에는 오류 열의 계보 식별자가 포함됩니다. 이러한 열의 메타데이터를 보려면 오류 출력을 데이터 흐름의 다음 구성 요소에 연결하는 경로를 클릭합니다. 경우에 따라 ErrorColumn 열의 값이 0으로 설정됩니다. 이 오류 조건은 단일 열 대신 전체 행에 영향을 줄 때 발생합니다. 조회 변환에서 조회가 실패하는 경우를 예로 들면 다음과 같습니다.

자세한 내용은 데이터 흐름Integration Services 경로를 참조하세요.

Integration Services 오류, 경고 및 기타 메시지 목록은 Integration Services 오류 및 메시지 참조를 참조하세요.

오류 및 잘림 옵션

오류는 오류 또는 잘림의 두 가지 범주 중 하나에 속합니다. 오류는 명백한 오류를 나타내고 NULL 결과를 생성합니다. 이러한 오류에는 데이터 변환 오류 또는 식 평가 오류가 포함될 수 있습니다. 예를 들어 사전순 문자가 포함된 문자열을 숫자로 변환하려고 하면 오류가 발생합니다. 잘못된 캐스트 및 호환되지 않는 데이터 형식으로 인해 데이터 변환, 식 평가 및 식 결과를 변수, 속성 및 데이터 열에 할당하면 실패할 수 있습니다. 자세한 내용은 Cast(SSIS Expression), 식의 Integration Services 데이터 형식Integration Services 데이터 형식을 참조하세요.

잘림은 오류보다 덜 심각합니다. 잘림은 사용 가능하거나 바람직할 수 있는 결과를 생성합니다. 잘림을 오류 또는 허용 가능한 조건으로 처리하도록 선택할 수 있습니다. 예를 들어 너비가 한 문자인 열에 15자 문자열을 삽입하는 경우 문자열을 자르도록 선택할 수 있습니다.

원본, 변환 및 대상에서 오류 및 잘림을 처리하는 방법을 구성할 수 있습니다. 다음 표에서는 옵션에 대해 설명합니다.

옵션 설명
고장 구성 요소 오류 또는 잘림이 발생하면 데이터 흐름 태스크가 실패합니다. 오류와 잘림에 대한 기본 옵션은 실패입니다.
오류 무시 오류 또는 잘림이 무시되고 데이터 행이 변환 또는 원본의 출력으로 전달됩니다.
행 이동 오류 또는 잘림 데이터 행은 원본, 변환 또는 대상의 오류 출력으로 전달됩니다.

오류 설명 추가

기본적으로 오류 출력은 숫자 오류 코드를 제공하며 일반적으로 오류가 발생한 열의 식별자를 포함합니다. 스크립트 구성 요소를 사용하여 인터페이스의 IDTSComponentMetaData100 메서드를 호출하는 한 줄의 스크립트를 사용하여 추가 열에 GetErrorDescription 오류 설명을 포함할 수 있습니다.

스크립트 구성 요소는 캡처하려는 오류를 발생시키는 데이터 흐름 구성 요소의 다운스트림 어디에나 있는 오류 세그먼트에 추가할 수 있지만, 일반적으로는 오류 행이 목적지에 기록되기 직전에 배치됩니다. 이렇게 하면 스크립트는 작성된 오류 행에 대한 설명만 조회합니다. 예를 들어 데이터 흐름의 오류 세그먼트는 일부 오류를 수정하고 해당 행을 오류 대상에 쓰지 않을 수 있습니다. 자세한 내용은 스크립트 구성 요소를 사용하여 오류 출력 향상을 참조하세요.

오류 출력을 구성하려면

또한 참조하십시오

데이터 흐름
변환을 통해 데이터 변형하기
경로를 사용하여 구성 요소 연결
데이터 흐름 태스크
데이터 흐름