GBase 8a导出加载数据时,字段内容包含换行\n怎么处理

GBase 8a数据库集群,支持导出时指定行分隔符和列分隔符,如果数据中的字符和其冲突,可以考虑用多个字符做分隔符,当然也可以用不常见或冲突几率低的不可见字符做分隔符。

行分隔符

默认的行分隔符是换行’\n’

lines terminated by ‘\n’

其支持指定多个,比如用 ‘\n\n’ ,‘ABC\n’ 多个字符代表行分隔符,或者1到多个不可见字符 \xFF。

关于不可见字符的使用,请参考

GBase 8a导出和加载使用多个不可见字符做分隔符

加载样例

表结构

四个列的varchar(10)的字段,用来测试数据中带换行符的。

gbase> create table t2(v1 varchar(10),v2 varchar(10),v3 varchar(10),v4 varchar(10));
Query OK, 0 rows affected (Elapsed: 00:00:01.48)

数据

包含两行,用逗号做字段分隔符,数据中包含换行符,最多只有一个。用两个换行作为行分隔符

[gbase@rh6-1 ~]$ cat t2.txt
AA,B
B,CC,DD

AAA,BBB
B,CC
CC,DD
DD

加载

正常加载入库,指定2个换行作为行分隔符。

gbase> load data infile 'sftp://gbase:gbase1234@10.0.2.201/home/gbase/t2.txt' into table t2 fields terminated by ',' lines terminated by '\n\n';
Query OK, 2 rows affected (Elapsed: 00:00:06.80)
Task 336744 finished, Loaded 2 records, Skipped 0 records

查询

查询结果和预期相符。

gbase> select * from t2 \G
*************************** 1. row ***************************
v1: AAA
v2: BBB
B
v3: CC
CC
v4: DD
DD
*************************** 2. row ***************************
v1: AA
v2: B
B
v3: CC
v4: DD
2 rows in set (Elapsed: 00:00:00.40)

另一个例子

用ZTE\n做行分隔符

[gbase@rh6-1 ~]$ cat t2.txt
AA,B
B,CC,DDZTE
AAA,BBB
B,CC
CC,DD
DDZTE
[gbase@rh6-1 ~]$ gccli testdb

GBase client 8.6.2.43-R28.122445. Copyright (c) 2004-2020, GBase.  All Rights Reserved.

gbase> truncate table t2;
Query OK, 2 rows affected (Elapsed: 00:00:01.40)

gbase> load data infile 'sftp://gbase:gbase1234@10.0.2.201/home/gbase/t2.txt' into table t2 fields terminated by ',' lines terminated by 'ZTE\n';
Query OK, 2 rows affected (Elapsed: 00:00:16.80)
Task 338893 finished, Loaded 2 records, Skipped 0 records

gbase> select * from t2 \G
*************************** 1. row ***************************
v1: AA
v2: B
B
v3: CC
v4: DD
*************************** 2. row ***************************
v1: AAA
v2: BBB
B
v3: CC
CC
v4: DD
DD
2 rows in set (Elapsed: 00:00:00.10)

导出样例

参数是一致的。

gbase> select * from t2 into outfile '/home/gbase/t2_out.txt' fields terminated by ',' lines terminated by 'ZTE\n';
Query OK, 2 rows affected (Elapsed: 00:00:00.14)

gbase> system cat /home/gbase/t2_out.txt
AA,B
B,CC,DDZTE
AAA,BBB
B,CC
CC,DD
DDZTE
gbase>

总结

这里只是演示行分隔符可以用多个字符,不单单非得用\n\n, 可以用任意的组合,比如 ’ZTE\n’ 用三个字母加换行符做行分隔符,或者按全面参考的文章,不可见字符做分隔符。

导出和导入的参数是对应的。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值