Я пишу в место назначения плоского файла в пакете служб SSIS 2008. 99,99% работает правильно. Тем не менее, я получаю одну повторяющуюся запись в файле назначения.
Вот базовый поток пакета:
1. Считайте два файла в кодировке ISO-8859-1 и кодируйте их текст в UTF8 в памяти
2. Объедините два файла вместе в памяти и загрузите их в поисковый кеш
3. Прочитать другой исходный файл с диска
4. Сопоставьте столбец идентификатора из исходного файла со столбцом идентификатора в поисковом кэше
5. Если идентификатор совпадает с идентификатором в поисковом кэше, запишите его в файл соответствия, если идентификатор не совпадает, запишите его в другой файл
Все работает от начала до конца. Тем не менее, я получаю дубликат в файле соответствия. Я начал подозревать, что дубликат вызван специальным символом конца файла (или другим) из текстовых файлов кэша поиска, когда они объединяются. Эти файлы создаются в системе UNIX (но я их кодирую в UTF8, когда читаю). Повторяющаяся запись - это одна и та же запись каждый раз. Как мне избежать получения дубликата (или выяснить, откуда приходит этот дубликат)? Я не могу использовать удаление дубликатов, потому что в месте назначения есть законные дубликаты. Я пытался понять это в течение нескольких недель.