我有这个csv文件,几乎所有的记录都处理得很好,但是有两种情况下我遇到了问题。
案例1:包含引号中的引号的记录::
"some data "some data" some data"案例2:在引号中包含逗号的记录::
"some data, some data some data"我已经研究过这个问题,并且研究了提取器的引用参数,但是我注意到设置(quoting:false)可以解决案例1,而设置(quoting:true)可以解决案例2,而设置(quoting:true)可以解决案例2,但是对于案例1失败。
constraints:没有修改数据文件的空间,未来的数据将进行相应的调整,但对于这些现有数据,我必须解决这个问题。
发布于 2018-08-31 11:31:29
试一试,将记录导入为一行,并使用双引号修复行文本(对逗号做同样的操作):
DECLARE @input string = @"/Samples/Data/Sample1.csv";
DECLARE @output string = @"/Output/Sample1.txt";
// Import records as one row
@data =
EXTRACT rowastext string
FROM @input
USING Extractors.Text('\n', quoting: false );
// Fix the row text using double quotes
@query =
SELECT Regex.Replace(rowastext, "([^,])\"([^,])", "$1\"\"$2") AS rowascsv
FROM @data;
OUTPUT @query
TO @output
USING Outputters.Csv(quoting : false);https://stackoverflow.com/questions/52090769
复制相似问题