Импорт BCP с акцентированными символами для SQL 2012

Я создал CSV-файл для BCP в этом формате:

x,y,z(CR LF)
x,y,z(CR LF) etc...

У меня есть команда bcp, работающая, как показано ниже:

bcp "{table}" in "{csv path}" -S {server} -t -T -q -w -f "{format xml file}"

Используя команду и файл в следующем формате:

bcp "{table}" format nul -t, -T -q -S {server} -f {format file} -x

Это работает и загружает, но не загружает акцентированные символы правильно.

Я просмотрел SQL Docs, но примеры не решают эту проблему.

Мой .csv находится в этом формате данных:

bigint, date, date, nvarchar, varchar, varchar, bigint, bigint

Я неправильно понимаю, должен ли я исправлять файл формата, команду загрузки IN или, возможно, оба варианта?

Спасибо.

Редактировать: на основе документов MS я теперь начал вручную создавать файл формата, как показано ниже - что всегда приводит к неверному размеру поля для ошибки типа данных.

11.0
8
1       SQLCHAR         0       15      ","      1     fn1 Latin1_General_CI_AS
2       SQLDATE         1       3       ","      2     fn2 ""
3       SQLDATE         1       3       ","      3     fn3 ""
4       SQLNCHAR        2       510     ","      4     fn4 SQL_Latin1_General_CP1_CI_AS
5       SQLCHAR         2       50      ","      5     fn5 Latin1_General_CI_AS
6       SQLCHAR         2       40      ","      6     fn6 Latin1_General_CI_AS
7       SQLBIGINT       1       8       ","      7     fn7 ""
8       SQLBIGINT       1       8       "
"   8     fn8 ""

Я также изменил параметры сортировки в поле таблицы nchar на «SQL_Latin1_General_CP1_CI_AS»

Всего 1 ответ


Наконец-то решено!

Я изменил свой ввод bcp .csv в формат ANSI и создал файл .fmt с кодовой страницей 1252.

Я также гарантировал, что мое поле таблицы SQL было сопоставлено с SQL_Latin1_General_CP1_CI_AS

Итак, когда CSV был ANSI, мой код формата был:

bcp "table" format nul -q -T -S {server} -t, -r 
 -f C:LocalStuffabc.fmt -c -C 1252 -x

После загрузки с помощью abc.fmt все работает!

Спасибо всем, кто помог.


Есть идеи?

10000