SQL Server 2008 - Объемная Вставка целый текстовый файл в одно поле

У меня есть текстовый файл (txt) содержащий форматированный текст (просто разрывы строки, возвраты каретки и вкладки), Он также содержит немецкие символы языка.

Я хочу использовать Объемный комментарий Вставки в T-SQL для чтения в текстовом файле в одно поле в таблице базы данных.

Я выполнил эту команду:

 CREATE TABLE #MyTestTable (
    MyData NVARCHAR(MAX)
 )

 BULK INSERT [#MyTestTable]
FROM 'D:\MyTextFile.txt'

 SELECT * FROM #MyTestTable

Проблема состоит в том, что это читает каждую строку текстового файла в новую строку в таблице Temp. Я хочу, чтобы это считало целый файл (форматирование и все) в одну строку.

Также немецкие символы языка, кажется, потеряны - замененный значением по умолчанию непечатаемого символа в Представлении Результатов.

Кто-либо какие-либо идеи, как я могу достигнуть этого?

Спасибо.

5
задан Simon Mark Smith 11 March 2010 в 10:17
поделиться

2 ответа

Вы можете использовать параметры ROWTERMINATOR и CODEPAGE . Знак конца строки по умолчанию - '\ r \ n'. Для CODEPAGE вам необходимо знать кодировку вашего необработанного файла и параметры сортировки вашей БД по умолчанию.

BULK INSERT [#MyTestTable]
FROM 'D:\MyTextFile.txt'
WITH (ROWTERMINATOR = '\0',
      CODEPAGE = 'ACP')

См. Также http://msdn.microsoft.com/en-us/library/ms188365.aspx

5
ответ дан 14 December 2019 в 08:48
поделиться
  • не используйте объемную вставку. это сделано для того, чтобы принимать по одной записи в строке. Вам нужно написать код.
  • Правильно обработайте переход от текстового файла к Unicode (nvarchar) в коде. массовая вставка, вероятно, применила стандартную кодовую страницу, потеряв ваши символы.

Это действительно требует небольшой работы по программированию - часа работы или около того, плюс другое тестирование и столько времени на выполнение, сколько потребуется.

0
ответ дан 14 December 2019 в 08:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: