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