数据中含有NULL 值的处理
如果待导出数据中某字段的内容为NULL 值,
则该字段导出的NULL 文本为
“当
前转义符+ N”。
默认情况下的转义符为“\”,因此字段导出的NULL 文本为“\N”。
示例
示例1:转义符默认为“\”,则“NULL”值导出的结果为“\N”。
示例中所用的表及数据:
DROP TABLE IF EXISTS gs;
CREATE TABLE gs (a int DEFAULT NULL, b varchar(20) DEFAULT
NULL);
INSERT INTO gs VALUES(NULL,NULL);
INSERT INTO gs VALUES(1, 'GBase');
导出SQL 语句:
gbase> SELECT * FROM gs INTO OUTFILE '/home/gbase/null_1.txt';
Query OK, 2 rows affected
查看导出文件:
$ cat null_1.txt
\N
\N
1
GBase
示例2:如果在导出语句中指定了字段包围符,则对NULL 值不起作用。
示例中所用的表及数据:
DROP TABLE IF EXISTS gs;
CREATE TABLE gs (a int DEFAULT NULL, b varchar(20) DEFAULT
NULL);
INSERT INTO gs VALUES(NULL,NULL);
INSERT INTO gs VALUES(1, 'GBase');
导出SQL 语句:
gbase>
SELECT * FROM gs INTO OUTFILE '/home/gbase/null_2.txt'
FIELDS ENCLOSED BY '"';
Query OK, 2 rows affected
查看导出文件:
$ cat null_2.txt
\N
\N
"1"
"GBase"
GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-09-15)
南大通用数据技术股份有限公司
1245
示例3:设置转义符为“|”,则“NULL”值导出的结果为“|N”。
示例中所用的表及数据:
DROP TABLE IF EXISTS gs;
CREATE TABLE gs (a int DEFAULT NULL, b varchar(20) DEFAULT
NULL);
INSERT INTO gs VALUES(NULL,NULL);
INSERT INTO gs VALUES(1, 'GBase');
导出SQL 语句:
gbase>
SELECT * FROM gs INTO OUTFILE '/home/gbase/null_3.txt'
FIELDS ESCAPED BY '|';
Query OK, 2 rows affected
查看导出文件:
$ cat null_3.txt
|N
|N
1
GBase