2014-11-01 2 views
0

У меня есть текстовый файл и мой текстовый файл имеет 27000000 и я хочу прочитать этот файл и сохранить в таблице сервера SQL
я использовать этот SQL-сервер T-SQL:
прочитать текстовый файл и сохранить в сервере SQL таблицы

BULK 
INSERT Employee 
FROM 'E:\\file.txt' --location with filename 
WITH 
(
FIELDTERMINATOR = ' ', 
ROWTERMINATOR = '\n' 
) 

и мой файл:

66200 6827   435200 1393/05/23 14:26:26  18  1 
66200 6819   435200 1393/05/23 14:28:45 113  1 


но моя структура файла:

66200<space>6827<space space>435200<space>1393/05/23<space space>14:26:26<space space space>18  
66200<space>6819<space space>435200<space>1393/05/23<space space>14:28:45<space space space>113  <br> 

в объемном блоке я пишу это поле терминатор:

FIELDTERMINATOR = ' ', 


и мое время файл Эври имеет два пробела и каждый раз, когда уже третий character.and масса не работает
но я хочу прочитать этот файл.
как я могу это сделать?

+0

Почему вы не заменить все вхождение двойных пространств с одним пробелом? Есть ли ограничения? – knkarthick24

+0

Как я могу заменить 27000000 записей? –

+1

Найти и заменить u попытался и не удалось? – knkarthick24

ответ

0

Создайте файл формата что-то вроде этого ....

10.0 
6 
1  SQLINT  0  4  " "  1  Col1   "" 
2  SQLCHAR  0  100  " "  2  Col2   SQL_Latin1_General_CP1_CI_AS 
3  SQLCHAR  0  100  " "  3  Col3   SQL_Latin1_General_CP1_CI_AS 
4  SQLCHAR  0  100  " "  4  Col4   SQL_Latin1_General_CP1_CI_AS 
5  SQLCHAR  0  100  " " 5  Col5   SQL_Latin1_General_CP1_CI_AS 
6  SQLCHAR  0  100  "\r\n" 6  Col6   SQL_Latin1_General_CP1_CI_AS 

Сохраните файл .fmt, замените Col1, Col2, COL3 ..... с реальными именами столбцов в таблице.

Тогда можно было бы написать свой Вставить заявление что-то вроде ...

BULK INSERT Employee 
FROM 'E:\file.txt' --location with filename 
WITH 
    (
    FORMATFILE = 'E:\Format_file.fmt' --path to your format file. 
    ); 
+0

спасибо, что обратили внимание на мою проблему, но у меня есть ошибка –

+0

Msg 4862, уровень 16, состояние 1, строка 1 Невозможно нагрузить, потому что файл «d: \ format.fmt» является неполным или не может быть прочитан. Код ошибки операционной системы (null). –

+0

@behzadrazzaqi Я предполагаю, что он терпит неудачу, потому что у вас семь столбцов, и файл формата определяет только шесть. Добавьте определение для этого окончательного «1». –

Смежные вопросы