Объемная вставка не работает

У меня есть запрос Bulk Insert следующим образом

BULK INSERT tmp_table FROM 'file.jrl' 
WITH ( 
              DATAFILETYPE='widenative' , 
              FIELDTERMINATOR = '~' , 
              MAXERRORS = 0 , 
              ROWS_PER_BATCH = 116064 , 
              ROWTERMINATOR  = '0x0a' , 
              TABLOCK  )

Это дает мне следующую ошибку

Msg 4866, Уровень 16, Состояние 4, Линия 1
Сбой массовой загрузки. Столбец слишком длинный в файле данных для строки 1, столбца 1. Убедитесь, что поле terminator и строка terminator указаны правильно.

Msg 7399, Уровень 16, Состояние 1, Строка 1
Поставщик OLE DB » BULK «для связанного сервера» (null) » сообщил об ошибке. Поставщик не дал никакой информации об ошибке.

Msg 7330, Уровень 16, Состояние 2, Линия 1
Не удается извлечь строку из поставщика OLE DB » BULK «for linked server»(null)».

Я используюDATAFILETYPE='widenative', потому что мои данные содержат некоторые специальные символы, такие как Ñ, Ã и т. д
Для значения RowTerminator я также проверил с ‘n’

Мой разделитель столбцов ~ . Есть ли что-то, что я должен изменить?
Мой пример данных выглядит следующим образом

12345 ~asdfdfdfd ~ ~ ~ ~ ~0000000000~ ~0000000000~ ~rrrã±tttttt ~

1 ответ

  1. Вы работаете в BioWare?

    В любом случае,
    проблема здесь не исходит от Терминатора строк. Сообщение об ошибке сообщает, что первая ошибка возникает в первом столбце, поэтому возникает проблема с Терминатором поля.

    Моя ставка на datafiletype. Попробуйте ‘widechar’ вместо ‘widenative’. Собственный Терминатор поля является \t,и использование собственного сделает массовое игнорирование параметра FIELDTERMINATOR.

    WKR.