返回首页

gbase数据、南大通用产品文档:GBase8a

更新日期:2024年09月11日

两种不转义的特殊情况
在一些特殊的情况下,转义符将不起作用,换句话说,就是对导出的数据不进行
转义。
字符型数据不转义的特殊情况
如果设定字段包围符
(FIELDS ENCLOSED BY)
为空,
导出的字段中的字符与字
段分隔符首字符(FIELDS TERMINATED BY)相同,并且字段分隔符(FIELDS
TERMINATED 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/unescaped_1.txt'
FIELDS TERMINATED BY 'n' ENCLOSED BY '';
查看导出文件:
$ cat unescaped_1.txt
102nabnxmny
可见字符串中“xmny”中的字符“n”没有转义。
非字符型数据不转义的特殊情况
如果opt_enclosed 判定为真(判断条件请见说明部分),当导出数据中某字符与
FIELDS TERMINATED BY 设置的字段分隔符首字符相同,并且字段分隔符首字
符是“.、0、1、2、3、4、5、6、7、8、9、e、+、-”之一时,这种情况下是不
对导出的字符进行转义的。
说明:
满足如下判断条件之一时,opt_enclosed 为真:

TERMINATED BY ';'
OPTIONALLY ENCLOSED BY '"';

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-09-15)
南大通用数据技术股份有限公司
1228

ENCLOSED BY '';

OPTIONALLY ENCLOSED BY '';

不写ENCLOSED BY 子句。
示例中用到的表及数据:
DROP TABLE IF EXISTS t;
CREATE TABLE
t(n int, v1 varchar(5), v2 varchar(8));
INSERT INTO t VALUES(102, 'ab', 'xmny');
示例1:
使用
“FIELDS TERMINATED BY '2' OPTIONALLY ENCLOSED BY '"'”

非字符型数据“102”中的“2”没有转义。
gbase>
SELECT
*
FROM
t
INTO
OUTFILE
'/home/gbase/temp/unescaped_2.txt'
FIELDS
TERMINATED
BY
'2'
OPTIONALLY ENCLOSED BY '"';
Query OK, 1 row affected
查看导出文件:
$ cat unescaped_2.txt
1022"ab"2"xmny"
示例2:使用“FIELDS TERMINATED BY '2' ENCLOSED BY ''”,非字符型数据
“102”中的“2”没有转义。
gbase>
SELECT
*
FROM
t
INTO
OUTFILE
'/home/gbase/temp/unescaped_3.txt'
FIELDS
TERMINATED
BY
'2'
ENCLOSED BY '';
Query OK, 1 row affected
查看导出文件:
$ cat unescaped_3.txt
1022ab2xmny
示例3:“FIELDS TERMINATED BY '2' OPTIONALLY ENCLOSED BY ''”,非
字符型数据“102”中的“2”没有转义。
gbase>
SELECT
*
FROM
t
INTO
OUTFILE
'/home/gbase/temp/unescaped_4.txt'
FIELDS
TERMINATED
BY
'2'
OPTIONALLY ENCLOSED BY '';
Query OK, 1 row affected
查看导出文件:
$ cat unescaped_4.txt
1022ab2xmny
示例4:使用“FIELDS TERMINATED BY '2'”,非字符型数据“102”中的“2”
没有转义。
gbase>
SELECT
*
FROM
t
INTO
OUTFILE
'/home/gbase/temp/unescaped_5.txt' FIELDS TERMINATED BY '2';
Query OK, 1 row affected

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-09-15)
南大通用数据技术股份有限公司
1229
查看导出文件:
$ cat unescaped_5.txt
1022ab2xmny

gcluster_rebalancing_concurrent_count
含义:允许并发执行rebalance 的表的个数。在session 中设置,设置为0 时表示不
允许进行rebalance
参数设置级别
最大值
最小值
默认值
GLOBAL

0
5
gcluster_rebalancing_random_table_quick_mode
含义:对随机分布表执行rebalance 操作时使用快速模式。
参数设置级别
最大值
最小值
默认值
GLOBAL
1
0
1
gcluster_rebalancing_step
含义:指定rebalance 操作时每一批重分布数据条数。值为0 时,rebalance 操作不
分批。
参数设置级别
最大值
最小值
默认值
GLOBAL

0
100000000
gcluster_rebalancing_step 参数值事实上是原表的每个分片每一批向中间表重分布的
数据行数。参数取值越大,从原表向中间表重分布数据的速度越快,rebalance 过程
中暂停时等待的时间就越长。
如果rebalance 过程中基本不需要暂停任务,
那么可以设置gcluster_rebalancing_step
为较大的值。如果rebalance 过程中需要多次暂停任务,那么可以设置
gcluster_rebalancing_step 为较小值。
gcluster_rebalancing_step 预估方法:原表单个分片的行数/ 预计分批数。

当使用事务日志记录时,当事务结束时,GBase 8s 通常关闭所有游标并释放所有锁。在多
用户环境中,这种行为并不总是可取的。
GBase 8s JDBC Driver 已经以 GBase 8s 扩展实现了可保持的游标支持。 GBase 8s 数据库服
务器支持在游标的声明中添加关键字 WITH HOLD。这样的游标称为保持游标,且在事务
结束时不关闭。
为符合 JDBC 3.0 规范,GBase 8s JDBC Driver 将方法添加至 JDBC 接口,以支持可保持
的游标。
要获取关于保持游标的更多信息,请参阅《GBase 8s SQL 指南:语法》。