РЕДАКТИРОВАТЬ: Моя единственная нерешенная проблема - c) (True и False в файле, бит в базе данных, я не могу изменить ни файл, ни схему базы данных, сотни терабайт я не могу трогать).
Система получает файл (а их на самом деле сотни тысяч) определенного формата. Дело в том, что: а) Первый тип — это уникальный идентификатор (подробнее об этом позже) б) В базе данных первые 4 значения таблицы генерируются базой данных (они связаны с датами), что означает, что эти 4 значения не найдены в базе данных. файлы (все остальные - и в порядке-, даже если это всегда их представление в виде текста или они пусты) c) Битовые значения представлены в файле с False/True.
Итак, проблема для 1 заключается в том, что в текстовом файле, который я получаю в качестве входных данных, uniqidentifier использует скобки. Когда я попытался сгенерировать файл с параметрами формата nul с помощью командного инструмента bcp, он сделал бы его sqlchar с 37 символами (что для меня не имеет смысла, поскольку это будет либо 36, либо 38).
Разделитель строк "+++\r\n", разделитель столбцов "©®©".
Как мне создать файлы формата? Я застрял с этим в течение некоторого времени, я никогда раньше не использовал bcp, и ошибки, которые у меня есть, на самом деле мало что говорят («Неожиданный EOF, обнаруженный в файле данных BCP»)
Должен ли я указывать все столбцы в файле формата или только те, которые я хочу прочитать из файлов, которые я получаю?
Спасибо!
ПРИМЕЧАНИЕ. Я не могу предоставить схему SQL, поскольку она предназначена для компании, в которой я работаю. Но это довольно много: smalldate, tinyint tinyint tinyint (эти четыре генерируются БД), uniqidentifier, chars, chars, больше varchars, немного битов, больше varchars, немного nvarchar. ВСЕ значения, кроме тех, которые генерируются базой данных, принимают нуль.
Моя текущая проблема заключается в пропуске первых 4 столбцов.
http://msdn.microsoft.com/en-us/library/ms179250(v=SQL.105).aspx
Я следовал этому руководству, но почему-то оно не работает. Вот изменения (я просто жестко меняю имена столбцов, чтобы сохранить конфиденциальность проекта, даже если это звучит глупо)
Это тот, который сгенерирован с помощью bcp (с форматом nul -c) - примечание, я поместил его как ссылку, потому что он не такой короткий - ://pastebin.com/4UkpPp1n
Второй, который должен делать то же самое, но игнорировать первые 4 столбца, находится в следующем pastebin: http://pastebin.com/Lqj6XSbW
Но это не работает. Ошибка: «Ошибка = [Microsoft] [SQL Native Client] Количество полей, предоставленных для операции bcp, меньше количества столбцов на сервере», что должно было быть целью всего этого.
Любая помощь будет оценена.