powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Обнаружен непредвиденный символ EOF в файле данных BCP
5 сообщений из 5, страница 1 из 1
Обнаружен непредвиденный символ EOF в файле данных BCP
    #40126792
ladush
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем доброго времени суток!
Столкнулся с такой проблемой при импорте csv файла

Импортирую файл запросом, который скачал с сайта (подозрительная ссылка!) http://сервисы.гувм.мвд.рф/info-service.htm?sid=2000

Данные в файле имеют такой вид
PASSP_SERIES,PASSP_NUMBER
402,696096
9701,478858
9702,790872
7199,118188

Таблица в БД имеет вид
Код: sql
1.
2.
3.
4.
5.
6.
CREATE TABLE CSV.dbo.list 
(  
    PASSP_SERIES varchar(50) NULL  
    ,PASSP_NUMBER varchar(50) NULL  
     
); 



Создаю запрос
Код: sql
1.
2.
3.
DECLARE @Error INT
EXEC @Error=master..xp_cmdshell 'BCP CSV.dbo.list in "D:\list_of_expired_passports.csv" -c -r\n -T -F2 -t"," -C 1251 -k'
SELECT @Error



Но мне выдаёт ошибку
Код: plaintext
1.
2.
3.
4.
5.
6.
NULL
Начато копирование...
SQLState = S1000, NativeError = 0
Error = [Microsoft][ODBC Driver 17 for SQL Server]Обнаружен непредвиденный символ EOF в файле данных BCP
NULL
Ошибка BCP-копирования in
NULL

С помощью Мастера импорта и экспорта файл заливается без каких-либо ошибок. Но мне необходимо импортировать его запросом.

Подскажите пожалуйста кто чем может.
...
Рейтинг: 0 / 0
Обнаружен непредвиденный символ EOF в файле данных BCP
    #40126798
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ladush,

зачем xp_cmdshell когда есть BULK INSERT ?
...
Рейтинг: 0 / 0
Обнаружен непредвиденный символ EOF в файле данных BCP
    #40126803
ladush
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
komrad
ladush,

зачем xp_cmdshell когда есть BULK INSERT ?


С помощью BULK INSERT тоже пробовал, не вышло.

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
BULK INSERT CSV.dbo.list
FROM 'D:\list_of_expired_passports.csv'
WITH(
         FIELDTERMINATOR = ',',
         ROWTERMINATOR = '\n',
	 FIRSTROW = 2,
         CODEPAGE = 1251   
		 
      )



Выдаёт ошибку

Код: sql
1.
2.
3.
4.
Сообщение 4866, уровень 16, состояние 8, строка 1
Массовая загрузка не удалась. Слишком длинный столбец в файле данных в строке 1, столбце 2. Убедитесь, что признак конца поля и конца строки были указаны правильно.
Сообщение 7301, уровень 16, состояние 2, строка 1
Не удалось получить требуемый интерфейс ("IID_IColumnsInfo") от поставщика OLE DB "BULK" для связанного сервера "(null)".




Пробовал увеличить varchar(max)
В таком случае никаких ошибок не выскакивает, но и результата никакого

Код: sql
1.
2.
3.
(затронуто строк: 0)

Время выполнения: 2022-01-15T12:39:38.9886318+03:00
...
Рейтинг: 0 / 0
Обнаружен непредвиденный символ EOF в файле данных BCP
    #40126850
ladush
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Долго не мог понять в чем дело, пока не наткнулся случайно на одну статью на этом форуме.
Решением проблемы оказалось поменять разделитель строки на 0x0a

В итоге все заработало
Через BCP
Код: sql
1.
2.
3.
DECLARE @Error INT
EXEC @Error=master..xp_cmdshell 'BCP CSV.dbo.list in "D:\list_of_expired_passports.csv" -c -r"0x0a" -T -F2 -t"," -C 1251 -k'
SELECT @Error



Либо через BULK INSERT
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
BULK INSERT CSV.dbo.list
FROM 'D:\list_of_expired_passports.csv'
WITH(
         FIELDTERMINATOR = ',',
         ROWTERMINATOR = '0x0a',
	 FIRSTROW = 2,
         CODEPAGE = 1251   
		 
      )



Вдруг кому поможет.
...
Рейтинг: 0 / 0
Обнаружен непредвиденный символ EOF в файле данных BCP
    #40126871
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ladush,

можно было проверить HEX редактором - чем же заканчиваются строки и нет ли в середине недопустимых символов, 0x00, к примеру.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Обнаружен непредвиденный символ EOF в файле данных BCP
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]