Я использую BCP для загрузки данных с SQL Server, используя опцию запроса.
Однако я заметил, что если содержимое данных в каких-либо столбцах содержит '\n', содержимое, экспортированное из BCP, будет рассматриваться как новая строка.
Например, если данные в SQL Server:
COLUMN_1 COLUMN_2
AAA NAME\nSURNAME
BBB NAMESURNAME
Экспортируемый файл будет выглядеть так:
AAA NAME
SURNAME
BBB NAMESURNAME
Обратитесь к документу BCP, насколько я понимаю, -c не должен рассматривать \n как новую строку.
-c Выполняет операцию, используя символьный тип данных. Этот параметр не запрашивает каждое поле; он использует char в качестве типа хранения без префиксов и с \t (символ табуляции) в качестве разделителя полей и \r\n (символ новой строки) в качестве конца строки. -c не совместим с -w.
Я не уверен, что я неправильно понял.
Вот команда, которую я использую:
bcp "select [col_name] from [table_name] where [condition]" queryout test.dat -U[username] -P[password] -S[serverip.port] -c
Спасибо.
bcp "select 'hello\nworld'" queryout test.txt -S(local) -T -c
...type test.txt
, как и ожидалось, даетhello\nworld
- не разрыв строки, а отдельные символы \ и n. - person AlwaysLearning   schedule 28.03.2020C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\170\Tools\Binn\bcp.exe
- person AlwaysLearning   schedule 28.03.2020