字符型数据的转义规则
数据类型
表5- 157 数据类型
字符型数据类型
DATE
DATETIME
TIMESTAMP
TIME
CHAR
VARCHAR
BLOB
TEXT
数据进行转义的情况
满足下列判断条件之一,则字符x 需要进行转义:
GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-04-10)
南大通用数据技术股份有限公司
1232
字符x 等于转义符首字符。
字符x 等于行分隔符首字符(FIELDS TERMINATED BY)。
字符x 等于“\0”。
enclosed 的值为TURE,并且字符x 等于FIELDS ENCLOSED BY 设置的字
段包围符首字符。
enclosed 的值不为TURE,并且字符x 等于FIELDS TERMINATED BY 设置
的字段分隔符首字符。
enclosed 值的判定规则请参见下文说明。
转义规则说明
正常情况下,
使用FIELDS ESCAPED BY 关键字定义的转义符对字符进行转
义;
如果指定FIELDS ENCLOSED BY 关键字的值为“n、t、r、b、0、Z、N”之
一,并且字符与“字段包围符首字符”相同时,使用字符本身对自己进行转
义。
示例中用到的表及数据:
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/1.txt' FIELDS
ENCLOSED BY 'n';
查看导出结果,“xmny”中字符“n”使用其本身进行了转义:
$ cat 1.txt
n102n
nabn
nxmnnyn
如果指定FIELDS ENCLOSED BY 关键字的值不属于“n、t、r、b、0、Z、N”
之一时,则采用转义符进行转义的方式。
示例:
SELECT * FROM t INTO OUTFILE '/home/gbase/temp/2.txt' FIELDS
ENCLOSED BY 'm';
查看导出结果,“xmny”中字符“m”使用默认的转义符“\”进行转义:
$ cat 2.txt
m102m
mabm
mx\mnym
GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-04-10)
南大通用数据技术股份有限公司
1233