마이그레이션 작업중인데
엑셀 데이타를 MSSQL 로 넣었습니다.
확인 해보니 날짜 형식이 2015-03-20 이거나 NULL 인 값 두 종류로 들어 가 있습니다.
현재 필드 타입은 navarcher 이고 이걸 datatime 으로 된 다른 db 테이블로 보내는 중입니다.
보내지다가 아래와 같이 오류가 생셔서 중지 됩니다.
- [dbo].[CHECK_LIST]으(로) 복사하는 중 (오류)
메시지
오류 0xc02020c5: 데이터 흐름 태스크 1: 열 "EQUIP_SYS_SET_DT"(92)에서 열 "EQUIP_SYS_SET_DT"(161)(으)로 변환하는 동안 데이터를 변환하지 못했습니다. 변환 중에 상태 값 2 및 상태 텍스트 "데이터가 손실될 가능성이 있어서 값을 변환할 수 없습니다."이(가) 반환되었습니다.
(SQL Server 가져오기 및 내보내기 마법사)
오류 0xc0209029: 데이터 흐름 태스크 1: SSIS 오류 코드 DTS_E_INDUCEDTRANSFORMFAILUREONERROR. 오류 코드 0xC020907F이(가) 발생했기 때문에 "출력 열 "EQUIP_SYS_SET_DT"(161)"이(가) 실패했으며 "출력 열 "EQUIP_SYS_SET_DT"(161)"에서의 오류 행 처리는 오류 발생 시 실패하도록 지정되어 있습니다. 지정된 구성 요소의 해당 개체에서 오류가 발생했습니다. 오류에 대한 자세한 정보와 함께 이 오류 메시지보다 먼저 게시된 오류 메시지가 있을 수도 있습니다.
(SQL Server 가져오기 및 내보내기 마법사)
오류 0xc0047022: 데이터 흐름 태스크 1: SSIS 오류 코드 DTS_E_PROCESSINPUTFAILED. 입력 "데이터 변환 입력"(150)을(를) 처리하는 동안 구성 요소 "데이터 변환 0 - 0"(149)에서 ProcessInput 메서드가 실패했습니다(오류 코드 0xC0209029). 식별된 구성 요소가 ProcessInput 메서드에서 오류를 반환했습니다. 이 오류는 해당 구성 요소와 관련되어 있지만 데이터 흐름 태스크의 실행을 중지할 수도 있는 오류입니다. 오류에 대한 자세한 정보와 함께 이 오류 메시지보다 먼저 게시된 오류 메시지가 있을 수도 있습니다.
(SQL Server 가져오기 및 내보내기 마법사)
오류 0xc02020c4: 데이터 흐름 태스크 1: 행을 데이터 흐름 태스크 버퍼에 추가하지 못했습니다(오류 코드 0xC0047020).
(SQL Server 가져오기 및 내보내기 마법사)
오류 0xc0047038: 데이터 흐름 태스크 1: SSIS 오류 코드 DTS_E_PRIMEOUTPUTFAILED. 구성 요소 "원본 - CHECK_LIST"(1)에서 PrimeOutput 메서드가 오류 코드 0xC02020C4을(를) 반환했습니다. 파이프라인 엔진이 PrimeOutput()을 호출할 때 이 구성 요소가 오류 코드를 반환했습니다. 이 오류 코드의 의미는 구성 요소에 따라 다르지만 파이프라인의 실행을 중지할 수도 있는 오류입니다. 오류에 대한 자세한 정보와 함께 이 오류 메시지보다 먼저 게시된 오류 메시지가 있을 수도 있습니다.
---------------------------
혹시나 해서 보내기전에 datatime 으로 변환 하려고 디자인 관리에서 필드 타입을 datatime 바꾸고 저장 해보면
아래와 같은 메세지가 나옵니다.
'CHECK_LIST' 테이블
- 테이블을 수정할 수 없습니다.
문자열을 날짜 및/또는 시간으로 변환하지 못했습니다.
혹시나 해서 NULL 인걸 제외하고 LEN() 함수로 자리수 를 체크 해보니 모두 10자리가 맞습니다.
제 생각엔 날짜 형식은 맞지만 없는 날짜가 존재해서 그런것 같은데 찾을 수 있을까요?
예를 들어 2015-02-31 이렇게 없는 날짜가 들어가 있는 데이타만요..
데이타가 40만건 되서 수동으로 찾기는 어렵네요.
Comment 1
-
죠리퐁
2015.03.20 14:30
찾았습니다.
ISDATE () 함수가 있네요.
맞으면 1 아니면 0 을 반환 하네요.