Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Создание плоского файла с помощью SSIS для чтения программой IBM z/OS

Автор вопроса: Ta01Ответов: 1

Я создаю текстовый файл фиксированной ширины, используя SSIS. Формат подключения плоского файла Ragged Right. Файл создается правильно и проходит все локальные модульные тесты на моем компьютере с Windows. Затем пакет служб SSIS передает файл партнеру по протоколу SFTP. Программист мэйнфреймов нашего партнера утверждает, что может прочитать только одну запись. Я проверил, что использовал для разрывов строк, и выбрал {CR}{LF}.

Я провел небольшое исследование и нашел пару статей, в которых говорилось, что системы, отличные от Windows, не смогут распознавать CRLF в качестве разделителя строк, но {LF} будет допустимым. Я попробовал это, и программист все еще говорит, что обнаруживает только одну запись, даже если в файле более 100 записей.

Есть ли какая-либо дополнительная конфигурация SSIS, отсутствующая в моем подключении к неструктурированному файлу? Может дело в кодировке?

  • Есть ли у вас согласованный макет плоского файла? Это должно включать то, что вы должны использовать в качестве разделителя строк, и должно ли оно быть частью фиксированной ширины. Вы можете открыть файл в шестнадцатеричном редакторе, посмотреть и сравнить его с вашим макетом, и пусть ваш партнер сделает то же самое и сравнит с тем, что он ожидает увидеть. Похоже, кому-то будет трудно решить, не зная точно, в чем проблема. DKnight 01.03.2011
  • Хороший бесплатный шестнадцатеричный редактор можно найти здесь - belkaplan.de/opera/tools/xvi32. .htm, если он вам нужен. DKnight 01.03.2011
  • Я попробовал это, в моем файле есть 0d0a, который является переводом строки с возвратом каретки, в одном из его файлов, который, как он утверждает, работает, просто есть 20, что, я думаю, просто шестнадцатеричное для пробела. Теперь он думает, что я должен отправить файл в формате ebcdic... Я отправляю в формате ascii.. Ta01 01.03.2011
  • Hex 20 - это пространство Ascii, в Ebcdic - это DS или Digit Select. Шестнадцатеричный редактор, который я связал, сделает преобразование Ebcdic, хотя это может быть не идеально, если у вас есть какие-либо специальные символы. DKnight 02.03.2011

sql-serverssisencoding

Ответы

Ответ 1 · рейтинг 2 · DKnight

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

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

Удачи!

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы