GBase 8a
其他
文章

studio查询中文显示二进制数据

发表于2025-03-12 17:50:2640次浏览2个评论

 

GBase 8a datastudio工具递归查询使用start with的SYS_CONNECT_BY_PATH语法进行拼接时,显示为二进制数据,使用gccli客户端查询显示正常。下图表示为二进制显示。

1.报错样例


测试建表语句如下
gbase> show create table t2;
+-------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table                                                                                                                                                                       |
+-------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| t2    | CREATE TABLE "t2" (
 "id" int(11) DEFAULT NULL,
 "name" varchar(20) DEFAULT NULL,
 "pid" int(11) DEFAULT NULL
) ENGINE=EXPRESS DEFAULT CHARSET=utf8 TABLESPACE='sys_tablespace' |
+-------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (Elapsed: 00:00:00.00)

gbase> show create table t3;
+-------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table                                                                                                                                                                                   |
+-------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| t3    | CREATE TABLE "t3" (
 "id" int(11) DEFAULT NULL,
 "name" varchar(20) DEFAULT NULL,
 "pid" int(11) DEFAULT NULL
) ENGINE=EXPRESS REPLICATED  DEFAULT CHARSET=utf8 TABLESPACE='sys_tablespace' |
+-------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (Elapsed: 00:00:00.00)

插入测试数据
gbase> select * from t2;
+------+--------------+------+
| id   | name         | pid  |
+------+--------------+------+
|    1 | 学校         |    0 |
|    2 | 信息学院     |    1 |
|    4 | 信息专业     |    2 |
+------+--------------+------+
3 rows in set (Elapsed: 00:00:00.00)

gbase> select * from t3;
+------+--------------+------+
| id   | name         | pid  |
+------+--------------+------+
|    1 | 学校         |    0 |
|    2 | 信息学院     |    1 |
|    4 | 信息专业     |    2 |
+------+--------------+------+
3 rows in set (Elapsed: 00:00:00.00)
复现报错


2.解决办法

使用to_char语法对问题数据进行转换

3.问题原因
函数默认返回默认返回二进制数据,server端发现返回结果会直接转换显示出来,企业管理器或者java应用因为二进制显示的问题,外围包一个to_char函数就行。

 

评论

登录后才可以发表评论
崔哥发表于 3个月前
阴阴溪曲绿交加,小雨翻萍上浅沙。鹅鸭不知春去尽,争随流水趁桃花。
沉香发表于 2个月前
来了