非字符型数据的转义规则
正常情况下,转义符仅仅对字符型数据进行转义,但是在一些特殊的情况下,对
于非字符型数据也可以进行转义。
数据类型
表5- 158 数据类型
非字符型数据类型
TINYINT
INT
SMALLINT
MEDIUMINT
BIGINT
BOOL
FLOAT
DOUBLE
DECIMAL
YEAR
数据进行转义的情况
如果指定“字段包围符首字符”(FIELDS ENCLOSED BY)是特殊字符“.、0、
1、2、3、4、5、6、7、8、9、e、+、-”之一时,才会对非字符型数据类型
进行转义处理。
备注:
指定“字段包围符首字符”为某特殊字符的方式有两种:
直接指定某特殊字符为“字段包围符”的首字符,例如:
SELECT * FROM gs INTO OUTFILE '/home/gbase/temp/3.txt' FIELDS
ENCLOSED BY '0';
指定“字段包围符”为空,且指定“字段分隔符”的首字符为某特殊字符,
例如:
SELECT * FROM gs INTO OUTFILE '/home/gbase/temp/4.txt' FIELDS
TERMINATED BY '0' ENCLOSED BY '';
如果指定“字段包围符首字符”为“n、t、r、b、0、Z、N”之一时,实际上
只能为字符“0”,再进行导出,采用的是用其本身进行转义的方式。
示例中用到的表及数据:
DROP TABLE IF EXISTS t;
CREATE TABLE t(n int, v1 varchar(5), v2 varchar(8));
INSERT INTO t VALUES(102, 'ab', 'xmny');
示例:
SELECT * FROM t INTO OUTFILE '/home/gbase/temp/5.txt' FIELDS
ENCLOSED BY '0';
查看导出结果,非字符型数据“102”中的“0”使用本身进行转义:
GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-04-10)
南大通用数据技术股份有限公司
1234
$ cat 5.txt
010020
0ab0
0xmny0
如果指定“字段包围符首字符(FIELDS ENCLOSED BY)”不属于“n、t、
r、b、0、Z、N”之一时,则采用的是用转义符进行转义的方式。
示例:
SELECT * FROM t INTO OUTFILE '/home/gbase/temp/6.txt' FIELDS
ENCLOSED BY '2';
查看导出结果,非字符型数据“102”中的“2”使用默认的转义符“\”进行
了转义:
$ cat 6.txt
210\22
2ab2
2xmny2
特例说明:如果导出字符包含“\0”,则导出的结果为“转义符+0”(参见