在CSV格式的文件中转义

在CSV格式的文件中转义

默认情况下,对于CSV格式的文件,转义字符是一个"(双引号)。如果用户想用一个不同的转义字符,使用COPYCREATE EXTERNAL TABLE或者gploadESCAPE子句来声明一个不同的转义字符。在用户选择的转义字符出现在数据的情况中,用户可以使用它来转义自身。

例如,假定用户有一个带有三列的表并且用户想载入下列的三个域:

  • Free trip to A,B
  • 5.89
  • Special rate "1.79"

用户指派的定界符是,(逗号),并且用户指派的转义字符是"(双引号)。用户的数据文件中的已格式化行看起来像这样:

         "Free trip to A,B","5.89","Special rate ""1.79"""

      

带有一个作为数据一部分的逗号字符的数据值被包裹在双引号中。作为数据一部分的双引号被用一个双引号转义,即使该域值已经被双引号包裹也应如此。

在一组双引号内嵌入整个域确保能保留下前导和拖尾的空白字符:

"Free trip to A,B ","5.89 ","Special rate ""1.79"" "

注意: 在CSV模式中,所有字符都是有意义的。一个被空白或者任何不同于DELIMITER的字符包围的引用值包括这些字符在内。如果用户导入的数据来自于一个会在CSV行中用空白填充到某种固定宽度的系统,这可能会导致错误。在这种情况下,可预处理CSV文件,在把该数据导入到Greenplum数据之前移除拖尾的空白。