Как заменить символ Uni-кода в пакете ssis - PullRequest
0 голосов
/ 04 марта 2019

Я пытаюсь загрузить файл DAT в таблицу сервера sql. Определенный столбец файла DAT, имеющий � в определенном столбце файла. Я пытаюсь заменить этот символ, используя выражение в преобразовании производного столбца.Ниже приведено выражение.

(DT_STR,1000,1252) REPLACE( [Comments] ,N'�','') 

Ошибка выдачи, выражение не оценивается.Кто-нибудь может помочь мне здесь.Большое спасибо

1 Ответ

0 голосов
/ 04 марта 2019

Я думаю, вам следует попробовать два подхода:

(1) Изменение кодировки файла

Как упоминалось в комментариях, - это замена недопустимого символа в выбранной кодировке.,

Сначала убедитесь, что тип данных столбца DT_WSTR, а не DT_STR**

Также попробуйте установить кодировку на Unicode или попробуйте использовать инструмент обнаружения кодирования, например:

Но я не думаю, покатеперь имеется мощное приложение или библиотека для обнаружения кодировок, в которой поддерживаются все кодировки

Чтобы изменить кодировку диспетчера соединений с плоскими файлами, вы можете установить флажок Unicode или выбрать кодовую страницу в раскрывающемся списке:

enter image description here

(2) Удаление нежелательных символов

Если у вас нет проблем с кодировками и вы знаете правильную кодировку файлов, если создание файла не выполнено правильно, эти символы не имеют значенияng и не могут быть возвращены , вы должны проверить операцию создания файла и проверить, есть ли проблема или разница между кодировкой или сопоставлением источника данных и кодировкой плоского файла.

Или вам следуетудалите эти символы с помощью компонента сценария или производного столбца:

(DT_WSTR,1000)REPLACE([Comments] ,"�","") 

* Примечание. Не используйте литерал N перед знаком и не конвертируйте в DT_STR, поскольку это может бытьдругие символы Юникода, которые нельзя преобразовать.

Дополнительная информация

...