我有一个表,我需要将其导出到一个csv文件。该表有一个xml字段,其中可能包含必须删除的换行符。 我正在使用bcp utility将数据从Sql Server导出到csv文件。
这是表格的结构:
ID int
CODE varchar(20)
XML_DATA xml
这是我正在使用的命令:
bcp "SELECT ID, CODE, replace(convert(nvarchar(max), XML_DATA), CHAR(13)+CHAR(10), ' ') as XML_DATA FROM MYDB.dbo.MyTable" queryout C:\output.csv -c -t0x1F -T -S "10.10.10.28"
由于某些原因,输出文件仍然包含换行符。但是,如果我在SQL Server上对包含换行符的记录运行相同的查询,则输出正确(删除了换行符):
SELECT
ID,
CODE,
replace(convert(nvarchar(max), XML_DATA), CHAR(13)+CHAR(10), ' ') as XML_DATA
FROM MYDB.dbo.MyTable
WHERE ID = 1099; -- record with a line break in the XML_DATA field
我在这里想念什么?
答案 0 :(得分:0)
解决了替换此行
replace(convert(nvarchar(max), XML_DATA), CHAR(13)+CHAR(10), ' ') as XML_DATA
与此
replace(replace(convert(nvarchar(max), XML_DATA), CHAR(13), ' '), CHAR(10), ' ') as XML_DATA
我还要指出,默认情况下,SQL Server Management Studio在查询结果的复制/粘贴中不包含CLRF字符,您必须显式启用一个选项以保留CLRF字符并重新启动SQL Server:{{3} }。那让我有些困惑^ _ ^