“活动”列的值包含文本中的逗号
csv中的一些记录:
Name,Project,Activity,Hrs
John,,,7.1
,Junkie,,7.1
,,Reviewing the,file,7.1 //This is under 'Activity' column and it has a comma in the text
当我使用批量插入时,我会获得此行的批量加载数据转换。如果删除此行或删除该句中的逗号,则一切正常。
请告诉我这种情况下的选项有哪些。我有很多csv文件,每个文件都有很多这样的值。
答案 0 :(得分:3)
如果我遇到这个特殊问题并且CSV文件的创建不在我的控制之下,我会使用这样的Perl脚本:
open(my $fhin, "<", "MyFile.csv");
open(my $fhout, ">", "MyQFile.csv");
while (my $line = <$fh>) {
chomp($line);
$line =~ s/^([^,]*),([^,]*),(.*),([^,]*)$/\"$1\",\"$2\",\"$3\",\"$4\"/;
print $fhout $line . "\n";
}
请注意,上面的正则表达式只能处理一个&#34;问题&#34;这种专栏。如果还有其他的,则不可能以编程方式为这些列分配正确的引用(没有更多信息......)。
答案 1 :(得分:-1)
我遇到类似的问题,其中文本字符串在字符串中有逗号。我使用以下字段终止符来解决。
FIELDTERMINATOR ='\ t'
这对CSV不起作用,我不得不将文件保存为.txt。