返回首页

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

更新日期:2024年09月11日

定义库自定义字符集引起集群扩容数据重分布
失败
问题现象
集群字符集为utf8,但部分库建库使用gbk,gbk 库下建表又使用utf8,扩容的节
点生成的库却为utf8,重分布时报源表与目标表不一致后错误
express 日志
[ERROR][S:52707840][Q:2263201877]:Query failed, THD(0x297a42000)
HOST(172.31.105.4:5050->102939605) reason: (GBA-01EX-700) Gbase general
error: (gns_host: 172.31.105.18) source table and destination table are not same:
src:( localhost:szhsjpt.8a_rebalancing_57757954_n10 )
dst:( 172.31.105.3:szhsjpt.8a_rebalancing_57757954_n10 ) column type: [0]type: 1,
precision: 2304, scale: 0, is_lookup: 0, nulls_mode: 2, internal_size: 2304,
display_size: 768 -- type: 1, precision: 1536, scale: 0, is_lookup: 0, nulls_mode: 2,

GBase 8a MPP Cluster 最佳实践
5 FAQ
文档版本(2022-02-11)
南大通用数据技术股份有限公司
158
internal_size: 1536, display_size: 768 SQL(SELECT * FROM `szhsjpt`.`a_refund_n6`
LIMIT 0,92910 TARGET INTO SERVER(HOST
'172.31.105.9,172.31.105.10,172.31.105.11,172.31.105.12,172.31.105.13,172.31.105.
14,172.31.105.15,172.31.105.16,172.31.105.17,172.31.105.18,172.31.105.3,172.31.10

功能
备用dblink 网关服务所在主机的ip 地址。

函数说明
将参数number 转换为字符串,并进行格式化输出。如果number 的位数大于格式
化参数FORMAT 的参数,结果将以“#”显示。
参数说明
表5- 11 参数说明
格式化参数


,
一般作为分组符号使用,
将number 参数格式化为数位格式字符串
输出,例如千位一分组,也可以按百位、十位一分组。通常与0、
9、“.”配合使用。
示例:99,999。
.
将number 参数格式化为小数形式的字符串输出。只能出现一次。
通常与0、9、“,”配合使用。
示例:999.99。
$
转换为美元货币含义的字符串,只能出现在最前或最后。
示例:$999。
0
占位符,格式化number,如果参数number 的位数少于格式化的
位数,则显示0 补足位。注意:0 的优先级高于9。
示例:000。
9
占位符,格式化number,一旦参数number 的位数少于格式化的
位数,则用空格补足位。
示例:999。
B、b
如果number 的值为0,则替换为空格,可以出现在任意位置。
示例:B9.99
EEEE、eeee
按照科学计数法输出。
示例:9.99EEEE。
FM、fm
删除数字开头和结尾处的空格。
示例:FM909.9。
TME
按照科学计数法返回number。
X、x
转换为16 进制。每个X 代表16 进制的一位。
例如:XX,代表两位16 进制数。
如果number,转换成16 进制数大于X 的个数,则输出“#”。
注意:数值必须是大于等于0 的整数。前面只能和0 或者FM 组
合使用。
示例
示例1:以百位作为分组。

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-09-15)
南大通用数据技术股份有限公司
710
gbase> SELECT TO_CHAR(987654321,'999,999,999') FROM dual;
+----------------------------------+
| TO_CHAR(987654321,'999,999,999') |
+----------------------------------+
|
987,654,321
|
+----------------------------------+
1 row in set
示例2:用空格位补足数值位。
gbase> SELECT TO_CHAR(54321,'999,999,999') FROM dual;
+------------------------------+
| TO_CHAR(54321,'999,999,999') |
+------------------------------+
|
54,321
|
+------------------------------+
1 row in set
示例3:
因为0 的优先级高于9,
所以十万位和百万位均以0 显示,
千万位和亿位
以空格显示。
gbase> SELECT TO_CHAR(54321,'990,999,999') FROM dual;
+------------------------------+
| TO_CHAR(54321,'990,999,999') |
+------------------------------+
|
0,054,321
|
+------------------------------+
1 row in set
gbase> SELECT TO_CHAR(-54321,'990,999,999') FROM dual;
+-------------------------------+
| TO_CHAR(-54321,'990,999,999') |
+-------------------------------+
|
-0,054,321
|
+-------------------------------+
1 row in set
示例4:小数格式化输出。
gbase> SELECT TO_CHAR(12.97,'099.99') FROM dual;
+-------------------------+
| TO_CHAR(12.97,'099.99') |
+-------------------------+
|