簡體   English   中英

SQL Server:使用批量導出實用程序將數據導出到csv文件時刪除換行符

[英]SQL Server: removing line breaks when exporting data to csv file using Bulk export utility

我有一個表,我需要導出到csv文件。 這個表有一個xml字段,可以有我必須刪除的換行符。 我正在使用bcp實用程序將數據從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

我在這里錯過了什么?

解決了這條線的問題

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: 在Sql Server Management Studio上預反轉CLRF查詢結果 那給了我一些困惑^ _ ^

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM