У меня есть текстовый файл (~ 100 000 + строк), где каждый столбец является фиксированной длиной, и мне нужно получить его в таблице базы данных SQL Server. Каждый из наших клиентов должен получить эти данные, но каждый текстовый файл немного отличается, поэтому нам нужно вручную войти и отрегулировать интервал символов в хранимой процедуре SQL.Файл с фиксированной длиной текста в таблицу данных SQL
Мне было интересно, есть ли способ использовать XML/XSD/XSLT. Таким образом, мне не нужно будет вводить и вручную редактировать хранимые процедуры.
Что мы делаем в настоящее время это:
1.) SQL server stored procedure reads a text file from the disk
2.) Each record is split into an XML element and dumped into a temporary table
3.) Using SQL Server's string manipulation, each element is parsed
4.) Each column is dumped into
Для пояснения, вот несколько примеров ... текстовый файл
Один клиента будет иметь следующее:
Name [12 Characters]
Employer [20 Characters]
Income [7 Characters]
Year-Qtr [5 Characters]
JIM JONES HOMERS HOUSE OF HOSE100000 20113
Текстовый файл другого клиента будет иметь следующее:
Year-Qtr [5 Characters]
Income [7 Characters]
Name [12 Characters]
Employer [20 Characters]
20113100000 JIM JONES HOMERS HOUSE OF HOSE
У них в основном все одинаковые поля, у некоторых может быть еще пара, а пара меньше, только в разных порядках.
Не могли бы вы продемонстрировать разницу в текстовых файлах? Возможно, это поможет избавиться от решения. –
Я не уверен, что это сработает, но вы заглянули в команду «BULK INSERT»? http://msdn.microsoft.com/en-us/library/aa225968%28v=sql.80%29.aspx –
Раньше мы использовали BULK INSERT, но требовали кучу разрешений, которые иногда пропускались, когда ИТ решил переместить базы данных, файлы и папки. – Jim