2012-11-30 2 views
2

다른 데이터베이스 (10.0.5500)에 삽입해야하는 SQL Server 2008 데이터베이스 (10.0.2841)의 열이 있습니다. 대상 데이터베이스에 삽입하기 전에 열에 Windows-1252 문자 만 포함되어 있는지 확인해야합니다.특정 인코딩에 맞지 않는 문자 바꾸기

현재이 작업을 수행하는 데 SSIS 패키지를 사용하고 있습니다. 내 원본 쿼리는 "대체"된 더미를 가지고 있지만, 추악하고 곧 유지가 어려울 것입니다.

select replace(replace(rep.......etc(column, 'º', ''), nchar(0x9D), ''), ......etc from table 

확실한 방법이 있지만 확실하지 않습니다. 그래서, 어떻게 내 쿼리 (또는 스크립트 구성 요소 아마?), "여기에 문자 가이 인코딩에서 작동하지 않는다면, 그 자리에 대신 빈 문자열을 주시겠습니까?"

답변

0

나는 youre sourcedb의 데이터 정렬이 대상 데이터베이스와 다른 것으로 가정합니다. 아마도 COLLATE를 사용하여 데이터 정렬을 대상 db의 데이터 정렬로 변경할 수 있습니다. 예를 들어 :

SELECT 
    column COLLATE Latin1_General_CI_AS 
FROM table