ASCII 플랫 파일 원본에서 데이터를 읽고 SQL Server 2008 데이터베이스에 쓰는 SSIS 2008 패키지를 만듭니다. BIDS는 유니 코드 데이터 유형과 비 유니 코드 데이터 유형 간의 암시 적 캐스트에 대해 불평하고 있었기 때문에 파생 된 열 도구를 사용하여 캐스팅을 만들었습니다.SSIS가 DT_WSTR로 캐스팅되지 않았거나 캐스팅되지 않았습니다.
Derived Column Name | Derived Column | Expression | Data Type
AccountName2 | Replace 'AName' | (DT_WSTR,100) AName | string [DT_STR]
나는 여전히 같은 오류를 받고 있어요 : 이것은 모습입니다
Validation error. InsertAccountRecords: InsertAccountRecords: Columns "AccountName2" and "AName" cannot convert between unicode and non-unicode string data types.
오류가 문제가 믿고 나를 인도하는 SQL Server 대상,에 표시됩니다
파생 열의 데이터 형식. DT_STR에서 DT_WSTR로 캐스팅했는데 Data Type이 여전히 명목상 DT_STR입니다.
저는 인터넷으로 인터넷을 검색했으며이 질문에 대한 좋은 답변을 찾을 수 없습니다. 누구든지 어떤 지침을 제공 할 수 있습니까?
편집 : 예. 파생 열의 데이터 뷰어 다운 스트림을 보면 AccountName2는 여전히 DT_STR로 올라오고 있습니다. 캐스트 주조가 왜 아닌가요?
예. 100 %의 경우 였고 데이터 변환 변환을 추가하면 훨씬 간단 해졌습니다. – Chris
그래도 왜, 왜, 왜, 왜 궁금해합니다.? 대체 할 때 데이터 유형을 올바르게 설정하지 않기로 선택해야하는 이유는 무엇입니까? – igorludi
@igorludi 잘 모르겠지만 SSIS는 데이터 유형을 처리하는 데 매우 보수적입니다. 암시 적 변환은 허용되지 않습니다. 그래서 내 생각 엔 단일 열이 패키지의 다른 위치에서 다른 데이터 유형을 가질 수 없다는 디자인 결정이 내려진 것입니다. 누군가가 새로운 데이터 형식 변환을 추가하고 '다운 스트림'논리를 업데이트하지 않기 때문에 갑자기 패키지가 손상되는 문제를 피할 수 있습니다. 새 열을 사용하면 전체 패키지를 업데이트해야합니다. 또한 계보 분석과 같은 일부 메타 데이터 작업을 더 쉽게 만들 수 있습니다. 그러나 나는이 추측에 대한 증거가 없다. – Pondlife