Надеюсь, это имеет смысл, но мне нужна помощь. Я получаю CSV-файл от нашего клиента и не отправляет нам файл стандартного формата. По большей части файл содержит 1 столбец длиной до миллиона строк, но иногда они отправляют нам несколько столбцов с миллионом строк в каждом столбце. Я предполагаю, что они используют Excel и сохраняют как CSV.Разберите динамический столбец csv в один столбец
Мой вопрос в том, как очистить файл, поэтому нам не нужно вручную менять его на один столбец? Прямо сейчас я делаю SqlBulkCopy
с DataTable
. Для этого нет записей заголовков.
Я открыт для использования SSIS программно или просто выполняет логику в tsql, если это необходимо, но предпочел бы этого не делать. Я бы предпочел сделать это в моем приложении C#. Сотрудник предложил импортировать в таблицу хранения импорта и использовать союзы для получения одного столбца, а затем вставить в таблицу, которая используется для другой логики. Пожалуйста помоги?!?
EDIT: я понял, пример может быть полезен вот так вот моя попытка:
Файл приходит так: аа, бб, куб.см, дд
Я хочу, чтобы это выглядело как это: аа бб куб.см дд
Примечание: Столбцы будут фиксированной шириной, но количество столбцов динамическое.
EDIT # 2: В итоге я сделал для этого другой маршрут, главным образом из-за ограничения времени. Я сделал, что создал временную таблицу импорта с 25 столбцами. Я использовал SqlBulkCopy
для сопоставления столбцов для этого. Сопоставления столбцов будут зависеть от количества столбцов в DataTable
, и я просто использую для этого foreach
.
Затем я вызываю хранимую процедуру для «обработки» записей, делая UNION ALL
для каждого столбца и импортируя их в итоговую таблицу. Это также помогло с проблемами с иногда записью заголовка, и иногда в столбце были пробелы, потому что это было не так долго, как предыдущие. Поскольку существует уникальное ограничение для поля в производстве, не может быть нескольких пустых записей.
Не элегантный, но я получил его на работу.
Чтобы исправить это вручную, вы вырезаете все значения во втором столбце и вставляете их в нижней части 1-го столбца? – David
Это вариант, но в первый раз это произошло, мы сделали отдельные файлы и разрешили мультивыбор и просто использовали цикл foreach, чтобы пройти через все. – campbm56
Да, пожалуйста, объясните, что должно произойти, когда имеется более одного столбца. Вы, как @David спрашивает, добавьте его до конца, вы объединяете A1 и B1 для своего вывода или просто игнорируете столбец B? – billinkc