我使用以下SP将视图导出到文件:
SET NOCOUNT ON;
declare @line varchar(255)
set @line = 'bcp "SELECT * FROM erpSqlBe.dbo.vwPriceListStockxx for xml , root(''daily'')" queryout "d:\myFolder\Daily.xml" -c -CACP -Uyyy -Pzzz '
SELECT @line
EXEC xp_cmdshell @line
生成的文件每2034个字符插入一次CRLF,使文件不可读。有什么办法解决这个问题?
我找到了https://translate.googleapis.com/translate_a/single?client=gtx&sl=en&tl=es&dt=t&q=Hello,但我不知道如何应用它。
感谢
答案 0 :(得分:1)
如果我理解正确,您尝试应用的解决方案是将for xml
返回的XML数据转换为varchar(max)
。这可以使用CAST({xml_data} AS VARCHAR(MAX))
完成,如下所示:
set @line = 'bcp "SELECT CAST((SELECT * FROM erpSqlBe.dbo.vwPriceListStockxx for xml , root(''daily'')) AS VARCHAR(MAX))" queryout "d:\myFolder\Daily.xml" -c -CACP -Uyyy -Pzzz '
或使用CONVERT(VARCHAR(MAX), {xml_data})
:
set @line = 'bcp "SELECT CONVERT(VARCHAR(MAX), (SELECT * FROM erpSqlBe.dbo.vwPriceListStockxx for xml , root(''daily'')))" queryout "d:\myFolder\Daily.xml" -c -CACP -Uyyy -Pzzz '