数据中的BCP转义\ n

问题描述 投票:0回答:1

我正在使用BCP使用queryout选项从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

谢谢。

sql-server bcp sqlbulkcopy
1个回答
0
投票

[我假设您的文本包含实际的\n控制字符,而不是仅包括彼此相邻的字符\n

在存在这种情况的情况下,您的选择是使用纯模式或将行终止符更改为\n以外的其他内容,以便它可以识别正确的模式。

我建议使用纯模式,并测试是否在适当的位置使用\n重新正确导入了数据。

© www.soinside.com 2019 - 2024. All rights reserved.