BCP要使用包含CR和LF的注释导出到.CSV,如何确保在特定列中忽略

时间:2015-01-31 03:04:53

标签: sql csv bcp

我正在尝试将SQL Express中的数据导出到.CSV文件中,而不必省略其中包含额外CR LF的列。我可以生成.csv文件,但它不能正确导入或解析到SQL 2012.所有问题列都是自由文本并且非常大,因此用户在有问题的字段中已经多次访问CR。

我的工作BCP命令如下所示我正在使用","作为分隔符:

bcp "SELECT quotename(ID,CHAR(34)), quotename(Name,CHAR(34)), quotename(Date,CHAR(34)), quotename(Smallcomment,CHAR(34)) FROM database.dbo.table ORDER BY Date" queryout C:\filename.csv -c -CACP -t, -S servername\instance -U readonlyuser -P readonlyuserpass

结果是完美的,甚至这个' Smallcomment'字段是一个自由文本字符串,用户正在放置','逗号,' /'斜杠,':'冒出各种垃圾,但它永远不会有问题。在这一个之后的下一组大约5列,它们的大小要大得多,并且它们都有相同的逗号,斜线和冒号以及垃圾,但我看到记事本中看起来像SPACES的一致中断,但我看到CR使用Notepad ++的LF符号

问题:CR LF是否在更大的评论栏中输入了我的逻辑?

如何忽略那些我已确定为我的行分隔符保留回车符和换行符的特定列中的特定CR和LF?

下面是一个很好的结果示例:

ID Col " 1111"," name1,name2(AAA:01/01/01 ID:1111)"," Jan O1 1001 10:00 AM" ,,&# 34;""""""""""&#34 ;,"","",""," 3","名称名称,标题", "" CRLF

错误的结果基本上显示了那些较大列中的几个CR LF字符并开始将所有行放在单独的行中,因此在导入文件时无法分隔列。

如何使那些麻烦列忽略CR和LF并且仅使用我需要到达下一行的最后一列之后的那些?

我有截图来比较Notepad ++ w /下面所有Char View的结果差异:

良好的数据http://tinyurl.com/obj8pgf

错误数据http://tinyurl.com/owzbwje

0 个答案:

没有答案