2016-09-13 6 views
0

У меня есть следующая проблема. У меня есть плоский файл с несколькими строками из 1400 символов. Я запустил BULK INSERT этого файла в таблицу с одним столбцом nvarchar(1400).Массовая Вставка одностолового плоского файла с символами Unicode «обрезает» строку

Заявление является следующее:

BULK INSERT tempTable 
FROM 'path\file' 
WITH (FIELDTERMINATOR= '',ROWTERMINATOR = '\n',MAXERRORS = 0) 

Это работает правильно, без ошибок. Но при ближайшем рассмотрении я замечаю, что есть строка, которая была «усечена», всего 230 символов.

После открытия большого файла с Sublime я обнаружил, что эта строка обрезана вокруг появления этих специальных символов, например [NUL] (скобки должны быть квадратами, которые я вижу в Sublime) , Что-то вроде

9999999999999 99999999999991000000JOHN DOE [NUL][NUL][NUL][NUL][NUL][NUL]ABCDE99999999 

Обратите внимание, если открыть файл в блокноте, символы заменяются на пустые пространства, например, так:

9999999999999 99999999999991000000JOHN DOE   ABCDE99999999 

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

Благодаря

ответ

2

меня сталкиваются с той же проблемой, и мы решили ее с помощью «SQL Server мастер импорта и экспорта». Внутри студия управления сервером Microsoft SQL откройте проводник объектов и щелкните правой кнопкой мыши имя вашей базы данных. Выберите опцию Задачи >> Импорт данных. Будет открыто новое окно мастера импорта и экспорта SQL Server. Выберите источник как плоский файл и просмотрите свой плоский файл. В разделе «Назначение» выберите Microsoft OLE DB Provider для SQL Server, укажите имя и имя базы данных SQL. На следующей странице измените сопоставление (таблица назначения). Надеюсь, это сработает.

+0

Спасибо, но это не то решение, которое я искал. Это часть решения ETL, поэтому пользователь не будет напрямую взаимодействовать с SQL Server. – Heathcliff

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