Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 select... from openrowset(bulk...)  [new]
Sky1992
Member

Откуда:
Сообщений: 31
Доброго времени суток.
Ни как не могу победить "insert... select... from openrowset(bulk...)" - из dbf(4), сохраненном через эксель в формат txt(с разделителями tab) - все отлично экспортируется, но из начального dbf-файла вечно ругается:

"Ошибка преобразования массовой загрузки данных (усечение) в строке 1, столбце 8 (col8)."

Вот файл формата, который использую:

9.0
8
1       SQLCHAR       0       508      ","     1     сol1               Cyrillic_General_CI_AS
2       SQLCHAR       0       508      ","     2     сol2               Cyrillic_General_CI_AS
3       SQLCHAR       0       508      ","     3     сol3               Cyrillic_General_CI_AS
4       SQLCHAR       0       508      ","     4     сol4               Cyrillic_General_CI_AS
5       SQLCHAR       0       508      ","     5     сol5               Cyrillic_General_CI_AS
6       SQLCHAR       0       508      ","     6     сol6               Cyrillic_General_CI_AS
7       SQLCHAR       0       508      ","     7     сol7               Cyrillic_General_CI_AS
8       SQLCHAR       0       508      "\r\n"  8     сol8               Cyrillic_General_CI_AS


В столбце col8 во всех строках только символ "-", поле временной таблицы, в которую переливаю данные nvarchar(max).

Не могли бы подсказать - в чем собственно проблема?
22 май 14, 09:32    [16052540]     Ответить | Цитировать Сообщить модератору
 Re: select... from openrowset(bulk...)  [new]
invm
Member

Откуда: Москва
Сообщений: 9406
Sky1992
в чем собственно проблема?
Проблема в том, что dbf так загрузить невозможно.
22 май 14, 09:54    [16052649]     Ответить | Цитировать Сообщить модератору
 Re: select... from openrowset(bulk...)  [new]
Glory
Member

Откуда:
Сообщений: 104760
Sky1992
Не могли бы подсказать - в чем собственно проблема?

Потому, что "начальный dbf-файл" - это вовсе не текстовый файл с разделителями tab
22 май 14, 10:35    [16052932]     Ответить | Цитировать Сообщить модератору
 Re: select... from openrowset(bulk...)  [new]
Sky1992
Member

Откуда:
Сообщений: 31
Glory,

это понятно,в файле формата для txt разделитель столбцов стоит "\t", а для дбф ",". И ведь ругается именно на последний столбце, может быть разделитель строк для дбф не "\r\n", а какой-то другой?
22 май 14, 12:10    [16053816]     Ответить | Цитировать Сообщить модератору
 Re: select... from openrowset(bulk...)  [new]
Glory
Member

Откуда:
Сообщений: 104760
Sky1992
о понятно,в файле формата для txt разделитель столбцов стоит "\t", а для дбф ",".

Т.п. по вашему dbf-файла - это тектовый файл с разделителем "," ?
22 май 14, 12:12    [16053839]     Ответить | Цитировать Сообщить модератору
 Re: select... from openrowset(bulk...)  [new]
Sergey Sizov
Member

Откуда:
Сообщений: 1528
Sky1992,
в dbf-файле НЕТ разделителей полей и строк. Никаких.
22 май 14, 12:16    [16053873]     Ответить | Цитировать Сообщить модератору
 Re: select... from openrowset(bulk...)  [new]
Sky1992
Member

Откуда:
Сообщений: 31
Glory,

Я не считаю дбф -файл текстовиком с разделителями запятыми, просто за неимением информации пробую все подряд.
Вот формат для txt, который работает:
9.0
8
1       SQLCHAR       0       508      "\t"     1     pol1               Cyrillic_General_CI_AS
2       SQLCHAR       0       508      "\t"     2     pol2               Cyrillic_General_CI_AS
3       SQLCHAR       0       508      "\t"     3     pol3               Cyrillic_General_CI_AS
4       SQLCHAR       0       508      "\t"     4     pol4               Cyrillic_General_CI_AS
5       SQLCHAR       0       508      "\t"     5     pol5               Cyrillic_General_CI_AS
6       SQLCHAR       0       508      "\t"     6     pol6               Cyrillic_General_CI_AS
7       SQLCHAR       0       508      "\t"     7     pol7               Cyrillic_General_CI_AS
8       SQLCHAR       0       508      "\r\n"   8     pol8               Cyrillic_General_CI_AS

А вот формат, который пытался для дбф использовать:
9.0
8
1       SQLCHAR       0       508      ","     1     pol1               Cyrillic_General_CI_AS
2       SQLCHAR       0       508      ","     2     pol2               Cyrillic_General_CI_AS
3       SQLCHAR       0       508      ","     3     pol3               Cyrillic_General_CI_AS
4       SQLCHAR       0       508      ","     4     pol4               Cyrillic_General_CI_AS
5       SQLCHAR       0       508      ","     5     pol5               Cyrillic_General_CI_AS
6       SQLCHAR       0       508      ","     6     pol6               Cyrillic_General_CI_AS
7       SQLCHAR       0       508      ","     7     pol7               Cyrillic_General_CI_AS
8       SQLCHAR       0       508      "\r\n"  8     pol8               Cyrillic_General_CI_AS

Поставил разделитель ",", т.к. где-то в инете увидел, что разделитель полей в дбф(4) это ",". Это скорее всего все не правильно, поэтому и задал вопрос этот. Можете сказать, в чем косяк формата или дбф-ку ну никак нельзя перелить именно таким образом?
22 май 14, 12:24    [16053952]     Ответить | Цитировать Сообщить модератору
 Re: select... from openrowset(bulk...)  [new]
Glory
Member

Откуда:
Сообщений: 104760
Sky1992
Я не считаю дбф -файл текстовиком с разделителями запятыми

ну так может поищите описание формата дбф -файла ?
Это займет гораздо меньше времени, чем пробовать все возможные разделители
22 май 14, 12:26    [16053969]     Ответить | Цитировать Сообщить модератору
 Re: select... from openrowset(bulk...)  [new]
Sergey Sizov
Member

Откуда:
Сообщений: 1528
Sky1992
Поставил разделитель ",", т.к. где-то в инете увидел, что разделитель полей в дбф(4) это ",".
Чушь полная.
Это скорее всего все не правильно, поэтому и задал вопрос этот. Можете сказать, в чем косяк формата или дбф-ку ну никак нельзя перелить именно таким образом?
Таким -никак. Это не текстовый формат, а бинарный, хотя в нем и можно кое-что глазками прочитать. О чем с самого начала Вам и твердят.
22 май 14, 12:42    [16054120]     Ответить | Цитировать Сообщить модератору
 Re: select... from openrowset(bulk...)  [new]
Sky1992
Member

Откуда:
Сообщений: 31
Glory,

ну так может поищите описание формата дбф -файла ?
Это займет гораздо меньше времени


В том-то и дело, пара дней поиска на просторах инета ничего не дали.
22 май 14, 12:42    [16054121]     Ответить | Цитировать Сообщить модератору
 Re: select... from openrowset(bulk...)  [new]
Glory
Member

Откуда:
Сообщений: 104760
Sky1992
Glory,
ну так может поищите описание формата дбф -файла ?
Это займет гораздо меньше времени


В том-то и дело, пара дней поиска на просторах инета ничего не дали.

Офигеть
Первая же ссылка из
https://www.google.ee/search?q=dbf формат&oq=dbf &aqs=chrome.5.69i57j69i61j0l4.5615j0j4&sourceid=chrome&es_sm=93&ie=UTF-8#q=dbf file format
22 май 14, 12:45    [16054138]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить