我试图使用bcp将查询结果导出到本地路径。
SET @CMD = 'bcp "select * from ##OutputTable" queryout "' + @Path + '\Temp_RawData.csv" -S ' + @@SERVERNAME + ' -T -t , -c'
SET @HEADERCMD = 'bcp "SELECT * from ##cols" queryout "' + @Path + '\Temp_Headers.csv" -S ' + @@SERVERNAME + ' -T -t , -c'
SET @Combine = 'copy "' + @Path + '\Temp_Headers.csv" + "' + @Path + '\Temp_RawData.csv" "' + @Path + '\MyExcel.csv"'
SET @DelCMD = 'del "' + @Path + '\Temp_*.csv"'但是,结果字段中的一个注释包含的值如下
工作完成良好,下一轮将是@6:00
但是,我导出的结果集将此值显示为两个单独的字段,因为它由逗号分隔。因此,所有的值都被错误地放置了。如何纠正这个问题?如果我的结果集不包含任何未分隔逗号的字段,则结果看起来很好。
发布于 2016-09-26 06:36:03
有了BCP,就有- AFAIK -无法转义分隔符字符。
所以你应该永远
QOUTENAME来获取量化的名称,而不是将qoutes作为字符连接到字符串中。你的出口应该像
OtherValues,"Job completed fine,Next run will be @6PM",OtherValuesBCP将把所有的qoutes处理为一个字符串..。
发布于 2016-09-26 06:34:51
这里有几个选择。
第一个选项:您可以使用另一个字段终止符,如制表符、\x、$等.但是你需要确保它是唯一的,没有出现在任何文本中。可以使用多个字符使分隔符唯一,但Excel只能使用单个字符分隔符导入。
第二个选项:您可以在excel导入中使用文本限定符("),在查询所有文本字段时使用QUOTENAME(列,CHAR(34))
https://stackoverflow.com/questions/39695692
复制相似问题