在各版本使用过程中,我发现了一些细小的差异,特此记录。
本次为宽松模式下加载文本文件时对分隔符的字符数限制存在差异。
1、问题现象:
在953的产品手册里提及:“宽松模式处理规则与文本方式加载处理规则不一致的有:1) 行分隔符、列分隔符、包围符仅支持单字符(单字节),指定多字符报错;”,其中提及列分隔符仅支持单字符。
但是目前使用发现,953版本和862b43版本,在宽松模式(data_format 5)下,支持列分隔符(fields terminated by)为多字符的情况,而952和862b33版本则仍保持列分隔符仅支持单字符。
--举例,952和862b33版本在列分隔符为多字符时报错如下:
gbase> load data infile 'http://10.10.1.1/test/a.txt' into table test1 fields terminated by '||' data_format 5;
ERROR 1210 (HY000): Incorrect arguments to 'FIELDS TERMINATED BY' should be singel character when 'DATA_FORMAT' is 5.
2、问题分析:
经过了解,获悉953和862b43版本针对宽松模式下列分隔符的字符数量进行了调整,而952和862b33版本还未做相应变更,因此存在使用差异。
3、解决或绕行方案:
在使用中注意该项差异,避免误用,数据文件里列分隔符尽量用单字符。
如确实为多字符又必须加载到952或862b33版本,考虑对数据文件的列分隔符进行替换调整。