在CSV格式的文件中转义
默认情况下,对于CSV格式的文件,转义字符是一个"
(双引号)。如果用户想用一个不同的转义字符,使用COPY
、CREATE EXTERNAL TABLE
或者gpload
的ESCAPE
子句来声明一个不同的转义字符。在用户选择的转义字符出现在数据的情况中,用户可以使用它来转义自身。
例如,假定用户有一个带有三列的表并且用户想载入下列的三个域:
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数据之前移除拖尾的空白。
上级主题: 转义